java基础5

继承

多个类中存在相同属性和行为时,将这些内容抽取到单独的一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可。

通过extends关键字可以实现类与类继承。
public class 子类名 extends 父类名{}
有了继承以后,我们可以定义一个类的时候,可以在一个已经存在的类的基础上,还可以定义自己的新成员。

继承的好处:
提高了代码的复用性
提高了代码的维护性
让类与类之间产生了关系,是多态的前提。
继承的弊端:
让类与类之间产生了关系,提高了耦合性。
内聚:就是自己完成某件事的能力。
耦合:类与类的关系。

java继承成员变量的特点:
A:成员变量名称不一样,使用的时候非常简单。
B:成员变量名称一样的情况
在子类方法中访问变量:
a:在方法的局部范围找,如果有就使用。
b:在子类的成员范围找,如果有就使用。
c:在父类的成员范围找,如果有就使用。
d:如果还找不到,就报错。

super和this的用法:
this:代表本类对象的引用。
super:代表父类的存储空间(可以理解为代表父类对象的引用)
用法:
访问成员变量:
this.成员变量
super.成员变量
访问构造方法:
this(…)
super(…)
访问成员方法:
this.成员方法()
super.成员方法()

java中继承构造方法的访问特点:
A:子类构造方法执行前都会先执行父类无参构造方法。
B:为什么呢?
因为子类继承父类,会继承父类的非私有成员。
而子类在初始化的时候,可能会使用父类的数据。如果父类数据没有初始化,子类就不能使用这些数据。所以,在子类初始化之前,一定要先先完成父类数据的初始化。
注意:在子类的构造方法中:第一行有一条语句:super()

问题:假如父类没有无参构造方法,怎么办呢?
A:在父类中添加一个无参构造方法。
B:可以通过super去访问父类的带参构造方法。
建议:使用第一条,每次手动给出无参构造方法。

java继承中成员方法的访问特点:
A:子类中方法和父类方法的声明不一样,这个太简单。
B:子类中方法和父类方法声明一样,调用的到底是谁的呢?
执行的是子类中的方法
通过子类对象调用方法:
A:在子类中,有就引用
B:在父类中,有就使用
C:如果没有就报错。

方法重写:子类中出现了和父类一模一样的方法声明的情况。
方法重写的应用:当子类需要父类的功能,而功能主体又有自己的特有内容的时候,考虑方法重写。
这样既保证了父类的功能,还添加了子类的特有内容。
@Override 这是注解,这个注解标记一个方法,表明该方法是重写父类的方法。
方法重写的注意事项:
A:父类私有方法不能重写
B:子类重写父类方法时,访问权限不能更高。
子类重写父类方法时,建议访问权限一模一样。

多态

多态:某一个事物在不同时刻表现出不同状态。
java中多态的前提:
A:有继承关系。
B:有方法重写。
C:有父类引用指向子类的对象。
Fu f = new Fu();
Zi z = new Zi();

Fu f = new Zi();

多态中成员的访问特点:
A:成员变量
编译看左边,执行看左边
B:成员方法
编译看左边,执行看右边
原因:因为成员方法有重写,而变量没有。

多态的好处:提高了程序的扩展性
具体体现:定义方法的时候,使用父类性作为参数,将来在使用的时候,适用具体的子类型参与操作。
多态的弊端:不能使用子类的特有功能。
如果要使用子类的特有方法,怎么办呢?创建子类对象就可以了。
不过这是内存会有两个子对象。
所以我们还可以使用多态的转型。
向上转型
从子到父
向下转型
从父到子
父类引用转为子类对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值