day11 java继承性 方法重写

本文详细介绍了Java中的继承概念,包括其优点、适用场景、语法格式以及内存说明。同时探讨了方法重写的关键规则,如返回值类型限制和权限修饰符要求,以及注意事项,如私有方法和final方法不可重写。
摘要由CSDN通过智能技术生成

继承性

继承的好处:

1.减少代码的冗余

2.提高代码的复用性

3.继承是多态的前提

什么时候可以使用继承?

当类与类之间存在大量相同的内容时。需要满足子类是父类中的一种(is a的关系)。 就可以将子类中重复的内容抽取到父类-这时子类就可以继承父类。

继承的格式 :
[修饰符] class 类名A extends 类名B

A类叫作子类-subClass

B类叫作父类-SuperClass

继承内存说明:

说明:

1.当子类继承父类后就拥有了父类中的实例变量实例方法

2.子类继承父类后也可以增加自己(子类)的属性和方法--子类比父类更强大

3.子类继承父类后父类中的属性和方法被private修饰, 子类就不能直接调用但我们还是认为子类继承了父类中私有的属性和方法(可以间接调用)。

4.java是单继承。一个子类可以有一个父类。但是一个父类可以有多个子类。

5.子类除了可以继承直接父类中的实例变量和实例方法外还可以继承间接父类中的。

6.如果一个类没有显示继承其它类那么默认继承Object类。Object类是所有类的父类。

7.子类和父类一定要存在“is a”的关系(不要为了继承而继承)。

  • 子类可以直接使用父类的静态成员(共享)

调用静态属性和方法用 this.名

快捷键 : 查看继承关系 :

ctrl +alt + u (图)

ctrl + H (继承树-家谱)

方法重写

 

方法的重写 :

当子类继承父类后如果子类对父类中的方法不满意(无法满足子类需求)可以考虑方法的重写

当子类重写父类的方法后再通过子类的对象调用此方法调用的是子类重写的方法。

如何方法重写? 可以直接将父类中要被重写的方法复制到子类中即可(大部分都这样用)

================================================================

在方法的重写时要注意的细节

1.父类被重写的方法和子类重写的方法,方法名和形参列表必须一致。

2.父类被重写的方法的返回值和子类重写方法的返回值

被重写的方法                 重写方法

void                                 void

基本数据类型                 对应的基本数据类型

---------------------------------

引用数据类型                  要小于等于父类被重写方法的返回值类型(A3 继承 A2 继承 A1)

A2                                   A2和A3

因为继承A1之后A2可能会添加一些别的东西进行扩展,A3对A2也是如此,所以A1是父、A2是子、A3是孙辈,但是包含的内容A1<=A2<=A3,重写A2的类时可以返回A2 A3 不能返回A1,因为有些数据可能返回不到,而A2 A3 肯定都包含在内

---------------------------------

3.子类重写方法的权限修饰符>=父类被重写方法的权限修饰符

权限修饰符 : private -> 缺省的 -> protected -> public

================================================================

注意:

1.私有方法不能被子类重写

2.final修饰的方法不能被子类重写

3.类方法不能被重写

4.如果是跨包的子类 父类中缺省的方法也不能被子类重写因为权限-子类看不到

只能重写protected和public修饰的类

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值