继承

无人久伴 提交于 2019-12-06 15:30:08

目的:

(1)代码复用:

延续父类的特征

(2)代码的扩展:

扩展父类没有的特征

(3)表示is-a的关系

子类 is a 父类的派别

例如:学生 is a 人

如何继承

语法格式:

  1 【修饰符】 class 父类{
  2 
  3 }
  4 【修饰符】 class 子类  extends 父类{
  5 
  6 }

继承的特点

1、Java只支持单继承,每一个子类只有一个直接父类

2、Java支持多层继承,父类还可以有父类

3、子类会继承父类所有特征,包括成员变量、成员方法,哪怕是私有的,私有的在子类中无法直接使用

4、子类不会继承父类的代码块、构造器等

5、但是子类一定会调用父类的实例初始化方法

继承时成员变量问题

1、子类会继承父类的所有的成员变量

子类创建对象时,在堆内存中是要为从父类继承的成员变量分配内存空间

2、如果子类声明了与父类同名的成员变量

此时,如果想要访问父类的同名的成员变量,那么可以使用super.,但是前提条件,这个成员变量没有私有化。如果私有化了,只能通过父类中的get/set来操作它

继承时成员方法问题

1、子类会继承父类的所有的成员方法

2、如果父类的某个方法的方法实现不适用于子类,那么子类可以选择重写

重写的要求:

(1)方法名必须相同

(2)形参列表必须相同

(3)返回值类型

void和基本数据类型:必须相同

引用数据类型:<=

(4)权限修饰符:>=

(5)其他修饰符:不能重写子类中不可见的private,如果跨包的话,缺省的也不能被重写

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!