面向对象的继承抽象

本文详细阐述了Java中的继承概念,包括其优点、规范设计原则以及变量和成员方法的访问规则。还介绍了方法的重写、构造方法的特性,抽象类和抽象方法的使用,以及匿名对象的应用场景。
摘要由CSDN通过智能技术生成


继承

概念

将多个类的相同属性和行为抽取到单独的一个类中,这多个类只要继承这个单独类即可继承这些属性和行为,无需定义这些共性的属性和行为
多个类被称为子类,单个类被称为父类

格式

使用extends关键字
public class 子类名 extends 父类名{ … }

优点

  • 提高代码的复用性
  • 提高代码的维护性
  • 让类与类产生了关系,是多态的前提

如何遵循继承的规范设计类呢?

把多个类中的共性成员放入父类中进行定义,让子类进行继承,子类只要定义自己特有的成员即可

特点

Java中的类只支持单继承,不支持多继承,但是可以多层继承
就是说一个子类只有一个父类,不能有俩个及以上的父类,但是父类可以有一个父类,父类的父类也可以有一个父类。
为什么不能多继承?因为假如你可以多继承,有俩个父类,但是这俩个父类都有一个相同的方法,而当你需要调用的时候不知道该去调用哪个父类的方法,所以不支持多继承

变量访问特点

子类方法中访问一个变量规则:就近原则

  1. 先在子类中找局部变量
  2. 再在子类中找成员变量 this.本类成员变量
  3. 然后在父类中找成员变量 super.父类成员变量

:父类中私有的成员子类不能直接访问

成员方法访问特点

子类对象访问一个方法:就近原则

  • 子类成员范围内找
  • 父类成员范围内找

:父类中私有的成员子类不能直接访问
如果子父类中出现同名同参数的方法,会先访问子类的,要访问父类相同方法可以使用super关键字,如:
super.父类成员方法

方法的重写

概念:子类和父类出现了一模一样的方法(方法名,参数列表)。
应用场景:当子类需要父类的功能,但是父类的功能不完全满足自己的需要时,子类可以重写父类的中的方法,这样即沿袭了父类的功能,又定义了子类特有的功能
@Override注解是放在重写的方法上的,作为重写是否正确的校验注解
私有方法不能被重写
要求
1.方法名称和参数列表必须与父类被重写的方法相同
2.返回值类型不能大于父类被重写的方法的返回值类型(除非是基本数据类型或void,必须相同)
3.访问权限不能小于父类被重写的方法的访问权限(public > protected > 缺省 > private)
4.子类方法抛出的异常不能大于父类被重写方法的异常

构造方法访问特点

子类中所有的构造方法默认都会访问父类中无参的构造方法
子类初始化之前,一定要先完成父类初始化
构造方法的第一条语句默认都是:super()
如果父类中没有空参构造方法,只有带参构造方法:
子类通过super手动调用父类的带参构造方法
:super()必须放在构造方法的第一行有效语句,this和super不能共存

抽象

抽象类:使用abstract关键字修饰的类被称为抽象类
格式:public abstract class 类名{}
抽象方法:使用abstract关键字修饰的且没有方法体的方法被称为抽象方法
格式:public abstract 返回值类型 方法名 (参数列表);
使用场景:当父类定义一个方法时,每个子类对该方法的具体实现的逻辑是不一样的,那么父类定义该方法时就可以定义为抽象方法,这个类就必须是抽象类。
:有抽象方法的类一定是一个抽象类;但是一个抽象类不一定有抽象方法
抽象类不能实例化(不能创建对象)
抽象类通常是用于父类,创建子类对象时,需要先初始化父类(抽象类的构造方法的作用就是父类初始化的使用)
抽象类中的抽象方法必须由子类重写,或者子类也为抽象类

匿名对象

概念:没有对象名接收的对象
使用场景:匿名对象可以像有名对象一样使用,但是只能使用一次

  1. 直接调用成员方法
  2. 直接当作方法参数传递
  3. 直接当作返回值
  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@Zeal

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值