java核心技术之继承(学习笔记)

P157

继承

关键字extends

java用关键字extentds代替了C++中的冒号(:)在java中,所有的继承都是共有继承,而没有C++中的私有继承和保护继承

class Manager extends Employee
{
	//方法和属性
}

注意:

  1. 已存在的类称为父类,超类
  2. 子类比超类拥有的功能丰富
  3. 子类调用超类的方法可以通过super.fangfa()来进行访问。
  4. 关键字this有两个用途:一是引用隐式参数,二是调用该类其他的构造器。同样,super关键字也有两个用途:一是调用超类的方法,二是调用超类的构造器。在调用构造器的时候,这两个关键字的使用方式很相似。调用构造器的语句只能作为另一个构造器的第一条语句出现。构造参数既可以传递给本类(this)的其他构造器,也可以传递给超类(super)的构造器。
  5. 如果将一个类声明为final,只有其中的方法自动地成为final,而不包括域。
  • 注意点:
    在Java中,所有的继承都是公有继承
    类型转换instanceof

  • this和super比较
    我们希望调用超类Employee中的getSalary方法,而不是当前类的这个方法。为此,可以使用特定的关键字super解决这个问题:
    关键字this有两个用途:一是引用隐式参数,二是调用该类其他的构造器。同样,super关键字也有两个用途:一是调用超类的方法,二是调用超类的构造器。在调用构造器的时候,这两个关键字的使用方式很相似。调用构造器的语句只能作为另一个构造器的第一条语句出现。构造参数既可以传递给本类(this)的其他构造器,也可以传递给超类(super)的构造器。

  • 多态
    一个对象变量(例如,变量e)可以引用多种实际类型的现象被称为多态(polymorphism)在Java程序设计语言中,对象变量是多态的。一个Employee变量既可以引用一个Employee类对象,也可以引用一个Employee类的任何一个子类的对象(例如,Manager、Executive等等) 。

  • 动态绑定

  1. 动态绑定有一个非常重要的特性:无需对现存的代码进行修改,就可以对程序进行扩展。
    假设增加一个新类Executive,并且变量e有可能引用这个类的对象,我们不需要对包含调用e.getSalary() 的代码进行重新编译。如果e恰好引用一个Executive类的对象,就会自动地调用Executive.getSalary()方法。
  2. 将一个子类的引用赋给一个超类变量,编译器是允许的。但将一个超类的引用赋给一个子类变量,必须进行类型转换,这样才能够通过运行时的检查。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值