java面向对象上(六)类的继承

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/strivenoend/article/details/83244414

extends扩展

为了表示事物和事物之间的一般和特殊关系,java设计了继承,用extends关键字实现,extends英文:扩展

子类是对父类的扩展,利用继承可以实现代码的复用,子类可以获得父类全部成员变量和方法,但不能获得父类的构造器,java类只能有一个直接父类,可以有多个间接父类

(1)子类继承父类的成员变量,包括实例成员变量和类成员变量。
(2)子类继承父类除构造方法以外的成员方法,包括实例成员方法和类成员方法。

(3)子类不能继承父类的构造方法,因为父类的构造方法用来创造父类对象,子类需定义自己的构造方法,用来创建自己的子类。

(4)子类可以重新定义父类成员。重新定义父类成员变量,重新定义父类成员方法(重写)

(5)当子类覆盖了父类的方法时,子类如果想调用父类被覆盖的类方法时,子类可以使用父类类名.父类被覆盖的类方法

                                                    子类如果想调用父类被覆盖的实例方法时,子类可以使用super.父类被覆盖的实例方法

创建子类对象时,内存注意下~

系统会为该类中的所有实例变量分配内存,也会为从父类继承来的实例变量分配内存,,即使子类和父类有同名的实例变量

可以通过super关键字去访问父类中定义的被子类隐藏的实例变量或实例方法

子类虽然不会获得父类构造器,但子类可以调用父类构造器哦?

在子类构造器中可以通过super显示调用父类构造器,子类构造器也可以通过this显示调用本类中的重载构造器,

如果子类构造器既没有super调用,也没有this调用,系统将会在执行子类构造器之前,隐士调用父类无参构造器

创建任何java对象最先执行的总是java.lang.Object类的构造器

创建任何对象总是从该类所在继承树最顶层类的构造器开始执行,然后向下执行,最后才是执行本类的构造器,

而java.lang.Object的构造器并未写任何输出语句。。。。。。。。。。。。

猜你喜欢

转载自blog.csdn.net/strivenoend/article/details/83244414
今日推荐