Java 继承

概念:

  • 继承:利用继承,人们可以基于已存在的类构造一个新类,继承已存在的类就是复用(继承)这些类的方法和域。
    在此基础上,还可以添加一些新的方法和域, 以满足新的需求。
  • 反射:反射是指在程序运行期间发现更多的类及其属性的能力

Notes:

  • Java 与 C++ 定义继承类的方式十分相似,Java 用关键字 extends 代替了 C++中的冒号:
  • 在 Java 中, 所有的继承都是公有继承, 而没有 C++ 中的私有继承和保护继承
  • extends:关键字 extends 表明正在构造的新类派生于一个已存在的类 。
  • 父类 :已存在的类称为超类( superclass ),基类(base class ) 或父类(parent class)
  • 子类;新类称为子类(subclass、) 派生类(derived class ) 或孩子类(child class )
  • 在设计类的时候,应该将通用的方法放在超类中, 而将具有特殊用途的方法放在子类中.
覆盖方法:
  • 超类中的有些方法对子类 并不一定适用, 为此,需要提供一个新的方法来覆盖(override)超类中的这个方法.
  • 如何访问父类同名方法:使用super关键字即可,如super.getSalary()
  • 在覆盖一个方法的时候,子类方法不能低于超类方法的可见性。特别是, 如果超类方法是 public, 子类方法一定要声明为 public
子类构造器:

例如:

public Manager(String name, double salar, int year, int month, int day)
{
super(name, salary, year, month, day) ; 
// 调用超类 Employee 中含有 n、 s、year month 和 day 参数的构造器” 的简写形式 
bonus = 0;
} 
  • 如果子类的构造器没有显式地调用超类的构造器, 则将自动地调用超类默认(没有参数 )的构造器
  • 如果超类没有不带参数的构造器, 并且在子类的构造器中又没有显式地调用超类的其他构造器,则 Java 编译器将报告错误。
多 态 :
  • 有一个用来判断是否应该设计为继承关系的简单规则, 这就是“ is-a” 规则, 它表明子类的每个对象也是超类的对象 。
  • 在 Java 程序设计语言中, 对象变量是多态的一个 超类变量既可以引用一个超类 类对象, 也可以引用一个 超类的任何一个子类的对象。

例如:

Manager boss = new Manager(. . .);    		//Manager是Employee的子类
Employee[] staff = new Employee[3];
staff[0] = boss ; 
  • 在 Java 中, 子类数组的引用可以转换成超类数组的引用, 而不需要采用强制类型
    转换

例如:

Manager[] managers = new Manager[10];		//Manager是Employee的子类
EmployeeQ staff = managers; 			//将它转换成 Employee[] 数组完全是合法的:
归纳一下访问修饰符:
  • 仅对本类可见 private
  • 对所有类可见 public
  • 对本包和所有子类可见 protected
  • 对本包可见—默认(很遗憾,) 不需要修饰符
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Yawn__

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

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

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

打赏作者

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

抵扣说明:

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

余额充值