1.为什么需要继承
代码冗余,面相对象思想中提出了继承的概念,专门用来进行共性抽取,实现代码复用。
2.继承细节
(1)子类继承了所有的属性和方法,但是私有属性不能在子类直接访问,要通过公共的方法去访问
public class ExtendsDetail {
public int n1=100;
private int n2=200;//私有的子类不能调用
//父类提供一个公共的public 方法
public int getN2(){
return n2;
}
}
class Sub extends ExtendsDetail{
public Sub() {
}
public void sayOK(){
System.out.println(n1);
// System.out.println(n2);
System.out.println(getN2());
}
}
2.子类必须调用父类的构造器,完成父类的初始化
3.当创建子类对象时,不管使用子类哪个构造器,默认情况下总会调用父类的无参构造器,如果父类诶呦提供无参构造器,则必须在子类构造器中去指定使用父类哪个构造器完成对父类的初始化工作,否则,编译不会通过
4.调用父类构造器super(),super()在使用时放在第一行。super()和this()不能一起使用
5.java所有的类都是Object类的子类

6.父类构造器的调用不限于直接父类!将一直往上追溯到Object类
7.子类最多只能继承一个父类,即java中是单继承
8.不能滥用继承,子类和父类之间必须满足is-a(是一个....)的逻辑关系
Person is a Music?//不合理
3.继承的本质分析
当子类对象创建好后,建立查找关系

访问关系:先子类,再父类(子类没有就父类)
本文探讨了继承在面向对象编程中的关键作用,从代码复用、属性和方法的继承机制、构造器调用、单继承规则等方面展开,深入剖析了继承的本质和查找机制,以及合理使用继承的逻辑条件。
11万+

被折叠的 条评论
为什么被折叠?



