继承的好处
提高了代码的复用性
多个类相同的成员可以放到同一个类中
提高了代码的维护性
如果功能的代码需要修改,修改一处即可
让类与类之间产生了关系,是多态的前提
其实这也是继承的一个弊端:类的耦合性很强
耦合性 - 内聚:我们以后写程序专注与高内聚,低耦合。
继承的特点:
1、在java中class类一次只能继承一个class类,不能一次多继承
2、java允许出现类与类继承形成继承体系
使用继承的注意事项:
1、子类无法继承父类中所有私有的成员(成员变量成员方法)
2、子类无法继承父类中的构造方法(一会说明原因)
3、不要因为有部门功能重复就立刻使用继承
4、什么时候用继承呢?
类与类之间的关系满足英语语法上的" is a " 举例:猫是动物,狗是动物。动物就可以被定义成父类。
1、要想对子类进行初始化,就必须先初始化其父类
2、一个类初始化,先加载成员变量,再加载构造方法
在Java中,类的加载顺序遵循一定的规则,基本上遵循“顺序”和“层次”。以下是加载顺序的概要:
父类静态变量和静态代码块(按在代码中出现的顺序)。
子类静态变量和静态代码块(按在代码中出现的顺序)。
父类实例变量和代码块(按在代码中出现的顺序)。
父类构造函数。
子类实例变量和代码块(按在代码中出现的顺序)。
子类构造函数。
类的加载的顺序:先加载父类,再加载子类的
类的初始化的顺序:先初始化父类,再初始化子类的
在有父子关系中的两个类中,先加载父类中的静态成员变量以及静态代码块,再加载子类中的静态成员以及静态代码块,父类的成员变量先进行初始化,然后再
初始化父类的构造代码块,之后父类的构造方法,然后是子类的成员变量先进行初始化,然后再初始化子类的构造代码块,之后子类的构造方法。
class X {
X() {
System.out.print("X");
}
Y b = new Y("aaaaaaa");
}
class Y {
Y(String s) {
System.out.print(s);
}
}
public class Z extends X {
Y y = new Y("bbbbbb"); // 第一步
Z() {
// super();
System.out.print("Z");
}
public static void main(String[] args) {
new Z(); // YXYZ
}
}
标签:初始化,day08,子类,代码,顺序,父类,加载
From: https://www.cnblogs.com/qiwei-bigdata/p/18342250