黄阶低级 - 《 Java 核心》- 5.1 类、超类和子类 - 修改0次

1、类、超类和子类

is-a 关系是继承的一个明显特征

经理有普通雇员没有的属性,比如项目奖金,因此需要新建一个 Manager 类。但是,如果他是经理,那么他一定是雇员。

下面是继承 Employee 类来定义 Manager 类的格式,关键词 extends 表示继承:

public class Manager extends Employee {

    public Manager(int _age) {
        super(_age);
        // 因为 Employee 没有仅仅使用默认的构造方法,所以这里也要写明,不然会编译错误
    }

}

在 Java 中,所有的继承都是公有继承,没有 C++ 的私有继承和保护继承。

父类和子类是青出于蓝更胜蓝的关系,子类比父类拥有更多的功能,也封装了更多的数据。

继承是一般到特殊、抽象到具体的渐变。

子类是父类的子集,例如经理集合是雇员集合的子集,至于是不是真子集,现在还不懂。-_-

子类可以使用父类的方法,反之不行,如果子类与父类有相同的方法需求但是实现不同,可以使用覆盖 override 来达到这个目的,比如经理和普通雇员的薪水计算方法不同。

至于子类能不能访问父类的私有域,这个又要看一下访问权限了:

作用域当前类同一个包子类其他包
private✔️
default ( friendly )✔️✔️
protect✔️✔️✔️
public✔️✔️✔️✔️

所以现在一目了然了,子类只能访问修饰符为 protect 和 public 的父类的域。如果子类的确需要访问私有域,就要借助有公有接口。

注意:子类只能修改或者增加父类的方法,但不能删除父类中的任何域和方法。

2、this 和 super 的区别

根本区别: this 是对当前对象的引用,而 super 不是,super 只是一个指示编译器调用超类方法的一个关键字。

使用区别:

关键字作用1作用2
this引用隐式参数调用该类的其他构造器
super调用超类的方法调用超类的构造器

好吧,这一节内容太多了,可能要拆成三篇来记。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值