面向对象三大特性-继承性
1.继承性的理解
生活上:财产继承、颜值继承 代码层面 自上而下:定义一个类A,在定义另一个类B时,发现类B的功能与类A相似,考虑类B继承于类A 自下而上:定义了类B,C,等,发现B、C有类似的属性和方法,则可以考虑将相同的属性和方法进行抽取, 封装到类A中,让类B、C继承类A,同时B、C中的相同的功能就看可以删除了
2.继承性的好处
继承的出现减少了代码的冗余,提高了代码的复用性 继承的出现,更便于功能的扩展 继承的出现让类于类之间产生了is-a的关系,为多态的使用提供了前提 -继承描述事物之间的所属关系,这种关系时:is-a的关系。可见,父类更通用、更一般,子类更具体 注意:不要仅为了其他类中某个功能而去继承
3.继承的格式
class A{ //属性、方法 } class B extends A{
}
继承中的基本概念 类A:父类、superClass、超类、基类 类B:子类、subClass、派生类
4.有了继承性以后
子类就获取到了父类中声明的所有属性和方法 但是,由于封装性的影响,可能子类不能直接调用父类中的属性或方法 子类在继承父类以后,还可以扩展自己特有的功能(体现:增加自己特有的属性或方法) 子类和父类的理解:要区别于集合和子集 不要为了继承而继承,在继承之前,判断一下是否有is-a的关系
5.默认的父类:
java中声明的类,如果没有显示的声明其父类,则默认继承于java.lang.Object
6.补充说明 Java支持多层继承(继承体系) >直接父类、间接父类 一个父类可以有多个子类,一个子类只能有一个父类 Java只支持单继承,不支持多重继承
java中的子父类的概率是相对的
6.代码实现
Person(父类)
package Oop2.atguigu03_extends; public class Person { //属性 String name; private int age; public void eat(){ System.out.println("人吃饭"); } public void sleep(){ System.out.println("人吃饭"); } public void show(){ System.out.println("age:"+age); } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }Student类(子类)
package Oop2.atguigu03_extends; public class Student extends Person{ //属性 // String name; // int age; String school; // public void eat(){ System.out.println("人吃饭"); } public void sleep(){ System.out.println("人吃饭"); } public void study(){ System.out.println("学生学习"); } public void show1(){ // System.out.println("age:"+age); System.out.println("age:"+getAge()); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧