Java知识面向对象之继承!

本文围绕Java面向对象编程展开,介绍了父类、子类及继承的概念和作用,阐述了单继承的优缺点。还讲解了权限修饰符、方法重写、super关键字的使用,以及Object类的特性。此外,对多态的前提、体现和使用,引用类型转换,抽象类和抽象方法的定义与使用等内容进行了说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.什么是父类
抽取类的共同属性定义为父类
父类也称为:基类或者超类
子类也称为:派生类
2.继承的作用
1)为了提高代码的复用性
2)自动可以使用父类中的所有成员(属性和方法)
3)子类可以定义属于自己的属性和功能
3.如何使用继承
子类 extends 父类 子类继承父类(子类是父类的延续和拓展)
4.特点
父类可以有多个子类,但是一个子类只能有一个父类------->单继承
5.单继承的优点
1)使用简单
单继承的缺点:
1)不便于后期维护
6.权限修饰符

私有的 private 本类中
默认的 default 本类中 同包类(类:子父类)
受保护的 protected 本类中 同包类(类:子父类) 不同包子类
公共的 public 本类中 同包类(类:子父类) 不同包子类 不同包其他类(类:子父类)
注意:
1)以上四个权限修饰符都是成员修饰符(成员变量,成员方法),不能修饰局部
2)被private 修饰的内容不能被继承
3)public 和 default (不能显示定义)能够修饰类
设计面向对象的原则之一:开闭原则(对修改关闭,对扩展开放)
7.方法的重写
1)不同的类
2)继承
3)方法签名相同
重写和重载的区别:
子类中一旦方法重写,会对父类中同名的方法进行屏蔽
如果子类有重写父类中的方法,调用时会调用子类中重写的方法
检测重写方法的方式:
1)左边有向上的三角
2)在重写方法的上面添加一个注解@Override
重写满足或者说注意条件:
= = 方法签名相同
<= 返回值类型:基本数据类型:子父类必须相同 引用数据类型:子类<=父类
>= 权限修饰符: 子类>=父类
注意:
1)被private修饰的方法不能被重写
2)被final修饰的方法不能被重写
3)被static修饰的方法不能被重写
如果子类中存在与父类静态方法重名的方法,记住要把子类中这个方法定义为静态的
8.super关键字
super 指代父类对象
this 指代当前创建对象
1)用在构造器的首行可以调用父类中的构造器
super (参数)————>匹配父类中构造器的参数
如果没有显示定义,默认在子类构造器的首行存在super(),默认调用父类的空构造器
2)区分子父类同名问题
如果存在同名问题,默认隐藏this,默认就近原则找当前子类中的,如果想要指定父类中,要使用super调用
注意:
1)后子类
2)显示同时定义this()和super(),因为都要存在与构造器的首行,但是可以隐式同时使用,默认调用父类空构造,显示调用子类其他构造器
3)就近找局部,然后如果同时存在局部,子类成员,父类成员同名问题,默认找局部,子类成员this,父类成员super
8.1 final(最终的)
被final修饰的变量为常量,不能改变
被final修饰的方法,不能被重写
被final修饰的类不能被继承(太监类)
9.Object 所有类的父类(老祖宗类)
在Java中所有类都会直接或者间接的继承自Object
9.1toString:打印一个对象的引用,默认调用这个对象的toString()方法
目的:打印对象的信息的字符串表示形式
类中重写toString方法,自定义方法体的实现
9.2 =是赋值 ==是比较地址
equals:可以比较对象的内容是否相同
public boolean equals (Object obj){
return (this = =object);
}
equals在Object中默比较的还是对象的地址
10.多态
一种事物的多种形态或者多种表现形式
多态的前提:
类的继承 或者 接口的实现
多态的最终体现:
父类的引用指向子类的对象
多态的目的:
父类的引用在调用子父类中同名方法的时候,会调用子类中重写的方法
注意:子类中新增的方法对父类不可见
多态使用成员
成员变量:
编译运行找父类 或者 编译运行看左边
成员方法:
编译看父类,运行看子类
编译看左边,运行找右边
编译看类型,运行找对象
10.1引用类型的转换
大范围:父类 小范围:子类
多态中,子类对象的引用如果需要调用子类中新增的方法,需要向下转型
运算符: A引用 instanceof B类
判断A的引用是否为B类型的对象,或者B类子类的对象,如果是返回true,否则返回false;
有了类型的判断才能确保转型不会报错。
11.抽象类
使用abstract修饰的类叫做抽象类
抽象方法:
1)使用abstract的关键字修饰的方法
2)抽象方法没有方法体的方法
3)抽象方法必须存在于抽象类中
注意:
1)抽象类不是实例化(创建对象)
2)抽象方法必须被重写(子父类继承)
3)如何使用抽象类中的内容:
创建具体子类的对象去使用
什么是具体的子类:重写父类中所有的抽象方法+按需新增方法
抽象的子类:按需求重写父类中的抽象方法+按需新增
4)抽象类中可以存在抽象方法也可以存在具体方法
5)abstract不能和private,final,static,native一起使用
6)抽象方法只需要被重写一次,也可以按需重写多次(子类还是父类的抽象方法,子类的子类还是抽象方法,都是同一个抽象方法)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值