在Java中继承指的是对某一批类的抽象,从而实现对现实世界更好的建模。我其实更喜欢将这种关系形容为一种具象化,子类是父类的具象化,除了私有方法和属性外,子类可以调用父类中的所有方法和属性。
- extends的意思是“扩展”。子类是父类的扩展。
- JAVA中的类只有单继承,没有多继承。
- 继承是类和类之间的一种关系。除此之外,类和类直接的关系还有依赖、组合、聚合等。
- 继承关系的两个类,一个为子类(派生类),一个为父类(基类)。子类继承父类,使用关键字extends来表示。
- 子类和父类之间,从意义上讲应该具有”is a”的关系。
- object类
- super
- 方法重写
- super关键字,调用父类里面的方法和属性。
- this关键字,调用自己的当前类方法和属性。
父类
package com.encapsulation.demo01;
// 人类 父类 ctrl+h 查看继承树
public class Person {
// pubilc 公共
// protected 保护
// default 默认
// private 私有
private int money = 10_0000_0000;
// 在父类中定义一个无参构造
public Person() {
System.out.println("Person执行了");
}
// 私有的无法继承到子类
private void pri() {
System.out.println("私有");
}
public void say() {
System.out.println("说了一句话");
}
public int getMoney() {
return money;
}
public void setMoney(int money) {
this.money = money;
}
}
复制代码
子类
package com.encapsulation.demo01;
// 学生类继承于人类 派生类
// 子类继承了父类就会拥有父类的全部方法 前提修饰符为pubilc
// 在java中所有的类都直接或间接都继承object类
public class Student extends Person {
// 子类中也定义一个无参构造
public Student() {
super(); // 调用父类的构造器必须放在第一行, 这里的super默认调用父类无参构造
System.out.println("执行了Student");
}
public void test() {
super.say(); // 利用super调用父类的方法
}
}
复制代码
执行
package com.encapsulation;
import com.encapsulation.demo01.Student;
public class App {
public static void main(String[] args) {
Demo01 s1 = new Demo01();
// new student 默认执行父类的构造在执行自己的构造
Student student = new Student();
}
}
复制代码

子类
package com.encapsulation.demo01;
//派生类
public class Teacher extends Person {
}
复制代码
注意点
- super调用父类的构造方法,必须在构造方法的第一个
- super 必须只能出现在子类的方法或构造方法中
- super 和 this 不能同时调用构造方法
Vs this
代表的对象不同:
-
this: 本身调用者这个对象
-
super: 代表父类对象的应用
-
前提
– this:没有继承也可以使用
– super: 只能在继承条件才可以使用 -
构造方法
- this(); 本类的构造
- super; 父类的构造
知识点
类里面的构造方法和普通方法的区别
-
构造方法有无参构造和有参构造,每个类必须有一个无参构造,否则会无法实例化
-
多个有参构造会进行方法重载,必须每个参数类型不一致
-
构造方法名和类名一致
// 有参构造方法 方法的重载必须参数类型不一样
public Student(String name) {
System.out.println(name);
}
// 有参构造方法
public Student(int age) {
}
Student student = new Student(12); // 这里根据数据类型来决定执行哪个有参构造
复制代码
总结
- 父类私有属性和方法无法继承到子类
- 子类通过super调用父类的方法和属性
- 父类和子类都有无参构造的时候,new 子类 (此时子类默认先调用父类无参构造,在执行自己的默认构造),默认调用super();
最后,祝大家早日学有所成,拿到满意offer,快速升职加薪,走上人生巅峰。 可以的话请给我一个三连支持一下我哟,我们下期再见
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END






















![[桜井宁宁]COS和泉纱雾超可爱写真福利集-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/4d3cf227a85d7e79f5d6b4efb6bde3e8.jpg)

![[桜井宁宁] 爆乳奶牛少女cos写真-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/d40483e126fcf567894e89c65eaca655.jpg)