[Java]Day2面向对象继承、抽象类

<一>继承

继承格式:

class 子类 extends 父类 { }

1.继承的特点:
  1. 只支持单继承,不支持多继承
错误案例:class A extends B, C { }	
  1. 支持多层继承
2.继承中成员访问特点:
  1. 子类局部范围找
  2. 子类成员范围找
  3. 父类成员范围找
  4. 如果都没有就报错(不考虑父亲的父亲…)
3.super关键字
  • this&super关键字
    • this:代表本类对象的引用
    • super:(引用父类对象)代表父类存储空间的表示
  • this和super的使用分别
    • 成员变量
    • this 成员变量 访问本类成员变量
    • super 成员变量 访问父类成员变量
    • 成员方法
    • this 成员方法 访问本类成员方法
    • super 成员方法 访问父类成员方法
  • 构造方法
    • this(…) - 访问本类构造方法
    • super(…) - 访问父类构造方法
4.继承中成员方法的访问特点

通过子类对象访问一个方法

  1. 子类成员范围找
  2. 父类成员范围找
  3. 如果都没有就报错(不考虑父亲的父亲…)
5.方法重写
  • 1.方法重写概念

    • 子类出现了和父类中一模一样的方法声明(方法名一样,参数列表也必须一样)
  • 2.方法重写的应用场景

    • 当子类需要父类的功能,而功能主体子类有自己特有内容时,可以重写父类中的方法,这样,即沿袭了父类的功能,又定义了子类特有的内容
  • 3.Override注解

    • 用来检测当前的方法,是否是重写的方法,起到【校验】的作用
6.方法重写的注意事项
  • 方法重写的注意事项
  1. 私有方法不能被重写(父类私有成员子类是不能继承的)
  2. 子类方法访问权限不能更低(public > 默认 > 私有)
  3. 静态方法不能被重写,如果子类也有相同的方法,并不是重写的父类的方法

<二>抽象类

  • 抽象类和抽象方法必须使用 abstract 关键字修饰
//抽象类的定义
public abstract class 类名 {}

//抽象方法的定义
public abstract void eat();
  • 抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类

  • 抽象类不能实例化

  • 抽象类可以有构造方法

  • 抽象类的子类

    ​ 要么重写抽象类中的所有抽象方法

    ​ 要么是抽象类
    小记忆:
    常量命名规范**:一个单词全部大写,多个单词全部大写但是要用下划线"_"间隔

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值