【职坐标】java面向对象三大特性(二)——继承详解

【职坐标】java面向对象三大特性(二)——继承详解

a) 什么是继承?

i. 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可
b) 为什么要使用继承?
i. 提高代码的复用性。
ii. 让类与类之间产生了关系,是多态的前提
c) 怎么使用继承?
i. 通过 extends 关键字让类与类之间产生继承关系  (注:子类可以直接访问父类中的非私有的属性和行为。)
ii. 子类和父类同名方法执行顺序的优先级

iii. 简单讲解四种访问修饰符及其权限

d)访问修饰符

1. private访问控制符
只能在这个类的内部使用。
2. 默认访问控制符
默认的访问控制成员可以被这个包中的其它类访问。(如果一个子类与其父类位于不同的包中,子类也不能访问父类中的默认访问控制成员和方法)
3. protected访问控制符
成员既可以被同一个包中的其它类访问,也可以被不同包中的子类访问。
4. public访问控制符
成员可以被所有的类访问,不管访问类与被访问类是否在同一个包中。
e) Java语言继承的特点
1. 单继承(一个儿子只能有一个爹)
2. 多层继承
f) super关键字
1. Super关键字的用途:在子类中引用父类中的成员变量和方法
2. Super关键字的使用场景
a) 当子父类出现同名成员时,可以用super进行区分
b) 子类要调用父类构造函数时,可以使用super语句
3. 对比this关键字和super关键字的区别
a) 变量、方法和构造方法的调用(注:在调用构造方法时super();和this();都是在构造函数的第一行,不能同时出现。)
方法覆盖(方法的重写)
1. 在继承中什么情况是方法的覆盖
a) 子类中出现与父类一模一样的方法时(除了权限修饰符,返回值类型,方法名和参数列表相同),会出现覆盖操作,也称为重写或者复写
b) 注:父类私有方法,子类看不到,因此父类私有方法的重写也就无从谈起。(权限比默认的大都可以重写)(默认的需注意要父类和子类要在同一个包中)
2. 为什么要使用方法重载?
a) 当子类需要父类的功能,而功能主体子类有自己特有内容时,可以复写父类中的方法,这样,既沿袭了父类的功能,又定义了子类特有的内容。
3. 使用方法重写时的注意事项
a) 重写方法时,子类的方法权限一定要大于等于父类的方法权限(不包括父类的private)
4. 方法重写和方法重载的区别
a) 根本区别:方法重写发生在有继承关系的两个类中,方法重载发生在一个类中
b) 方法重载的两个方法,方法名相同,方法签名不同,而方法的重写用在子类方法与父类方法的方法签名一模一样
5. Equals方法的重写(逻辑+快捷键)(为什么要重写equals)
6. 上下转型(优缺点)
a) 上转型 安全(子类转父类)
b) 下转型 (不安全)
什么时候要使用继承?(合理使用继承)
1. 如果类之间存在着IS-A的关系,就可以考虑使用继承
a) 对比is – a (继承关系)讲解Has-a(组合关系)
2. 注意:不要为了继承部分功能而去使用继承(举例说明)
e) 抽象类(构造方法)
1. 什么是抽象类?
a) 包含抽象方法的类(强调接口)
2. 为什么要使用抽象类?
a) 如果某个方法在父类中实现出来没有任何意义,必须根据子类的实际需求来进行不同的实现,那么就可以将这个方法声明为抽象方法,此时这个类也就成为抽象类类
3. 抽象类和普通类的区别
a) 抽象方法必须为public或者protected,缺省情况下默认为public。
b) 抽象类不能用来创建对象;
c) 如果一个类继承于一个抽象类,则子类必须实现父类的抽象方法。如果子类没有实现父类的抽象方法,则必须将子类也定义为abstract类。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值