黑马程序员技术交流社区
标题:
继承-课堂笔记
[打印本页]
作者:
LPStone
时间:
2015-5-8 23:30
标题:
继承-课堂笔记
继承:子类不能访问父类私有的成员
继承的好处和:
1、提高代码的复用性
2、让类与类之间产生了一个关系,是多态的前提。
特点:
1、java只支持单继承,不支持多继承
(为什么?)因为如果支持多继承,不同父类的相同成员无法继承,出现调用不明的错误。
2、java支持多层继承
什么时候考虑使用继承?
由于继承体现了一种关系:is a的关系。xxxx is yyyy的一种。
如果多个类之间有is a的关系的时候,他们之间存在继承关系。
发现有相同方法的时候。
注意:不要为了获取部分功能而去使用继承。
子父类间成员变量的关系
通过子类访问一个成员变量的时候:
1、首先在局部范围找,如果有就使用
2、继续在成员位置找,如果有就使用
3、最后在父类中找,如果有就使用
4、如果还是没有,就报错。
局部变量名、本类成员变量名、父类成员变量名冲突:
局部变量:直接输出
本类成员变量:this.变量名
父类成员变量:super.变量名
super关键字:和this的用法很像,代表父类的内存的空间的标识(可以理解为父亲的对象)
this和super的使用:
成员变量:
this.变量;--本类的变
super.变量;--父类的变
构造方法:
this(参数);--本类的构造方法
super(参数);--父类的构造方法
成员方法:
this.方法();--本类的方法
super.方法();--父类的方法
方法的重写(覆盖):
子类中出现与父类一模一样的方法时,会出现覆盖操作,也称作重写或复写。
注意:
1、父类中的私有方法不能被重写
2、覆盖时,子类方法访问权限必须大于等于父类方法访问权限
3、静态方法只能被静态方法重写,这个其实不能算对象的关系
面试题:重写与重载的区别?
方法重写:
子父类中,出现方法相同的情况。返回值,方法名,参数一模一样。
方法重载:
同一个类中,方法名相同,参数列表不同,跟返回值无关。
继承中的构造关系:
子类中所有构造方法默认都去访问了父类的无参构造方法
在子类中的构造方法中都有一行默认语句:super()
因为子类会自动具备父类中的非私有数据,那么,这个数据的初始化靠父类完成
所以会点调用父类的构造方法对数据进行初始化。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2