Java继承重点

2021-08-05 18:57

阅读:485

标签:类构造   方法   super   属性   生成   使用   this   顺序   父类   一、继承给编程带来的便利 1、代码的复用性提高了。 2、代码的扩展性和维护性提高了。 二、继承的使用细节 1、子类继承了所有的属性和方法,非私有的属性和方法可以在子类直接访问,但是私有属性和方法不能在子类直接访问,要通过父类提供公共的方法去访问。 2、子类必须调用父类的构造器,完成父类的初始化。 3、当创建子类对象时,不管使用子类的哪个构造器,默认情况下总会去调用父类的无参构造器,如果父类没有提供无参构造器,则必须在子类的构造器中用super去指定使用父类的哪个构造器完成对父类的初始化工作,否则,编译不会通过。 4、如果希望指定去调用父类的某个构造器,则显式的调用一下。 5.、super在使用时, 需要放在构造器第一行。6.、super() 和this()都只能放在构造器第一行, 因此这两个方法不能共存在一个构造器。7.、java所有类都是Object类的子类。 8、父类构造器的调用不限于直接父类!将一直往上追溯直到Object类(顶级父类)。 9、子类最多只能继承一个父类(指直接继承), 即java中是单继承机制。10、不能滥用继承,子类和父类之间必须满足is-a的逻辑关系。 三、继承的本质分析(重要) 1.在方法区中加载类的信息,顺序依次为Object、GrandPa、Father、Son 2.在方法区中开辟"大头爷爷"、"旅游"这两个字符串的空间并生成地址0x22、0x33,然后在堆空间中用爷类的name、hobby指向"大头爷爷"、"旅游"; 在方法区中开辟"大头爸爸"这个字符串的空间并生成地址0x44,然后在堆空间中用父类的name指向"大头爸爸",整型39赋值给父类的age; 在方法区中开辟"大头儿子"这个字符串的空间并生成地址0x55,然后在堆空间中用子类的name指向"大头儿子"。 3.将堆中为对象分配的0x11地址赋值给栈中的引用变量son(或者说son引用指向堆中的对象)   这时请大家注意,要按照查找关系来返回信息:(1) 首先看子类是否有该属性(2) 如果子类有这个属性,并且可以访问,则返回信息(3) 如果子类没有这个属性,就看父类有没有这个属性(如果父类有该属性,并且可以访问,就返回信息.)(4) 如果父类没有就按照(3)的规则, 继续找上级父类,直到0bject...      Java继承重点标签:类构造   方法   super   属性   生成   使用   this   顺序   父类   原文地址:https://www.cnblogs.com/RobertYu666/p/14952167.html


评论


亲,登录后才可以留言!