类,超类和子类(一)
来源:互联网 发布:ipad看tvb软件 编辑:程序博客网 时间:2024/06/01 10:27
类,超类和子类
定义新类manager 增加功能,可以使用employee类中已经有的代码。
格式
class Manager extends Employee
{
添加方法和域
}
extends表明正在构造的新类派生于一个已经存在的类。已经存在的类称为父类,基类,或超类,新类称为子类,派生类,孩子类
孩子类比父类拥有的功能多,青出于蓝而胜于蓝
增加域和一个用于设置这个域的方法
class Manager extends Employee
{
private double bonus; //增加的域
..
public void setBonus(double b) //增加用于设置这个域的方法
{
bonus=b;
}
}
setBonus方法不是在Employee类中定义的,属于Employee类的对象不能使用它
但是Manager类自动地继承了超类Employee中的getName,getHireDay方法,还从超类中继承了name,salary,hireDay这三个域
通用方法放到超类,特殊方法放在子类
覆盖超类的getSalary
public double getSalary()
{
return salary+bonus;
}
上面这个方法是错误的,因为Manager类并不能访问Employee的私有域salary,这时可以借助公有的接口,Emloyee的公有方法getSalary
public double getSalary()
{
double baseSalary = super.getSalary();//super是特有的关键字
return baseSalary+bonus;
}
如上述可以增加域增加方法覆盖超类,但是绝对不能删除继承的任何域和方法
super在构造器中的应用
public Manager(String n,double s,int year,int month,int day)
{
super(n,s,year,month,day);//调用超类Employee中含有n,s,year,month,day参数的构造器
bonus=0;
}
因为Manager类的构造器不能访问Employee类的私有域,必须利用Employee类的构造器对这部分私有域进行初始化
如果子类的构造器没有显式的调用超类德尔构造器,则自动地调用超类默认(没有参数)的构造器。如果超类没有不带参数额构造器,并且在子类的构造器中有没有显式的
调用超类的其他构造器,则Java编译器将报错
super有两个用途,调用超类的方法, 调用超类的构造器
- 类,超类和子类(一)
- 类,超类和子类
- 5.1 类、超类和子类
- 5.1 类、超类和子类
- windows基础应用程序编程(十)子类和超类
- 超类与子类(Superclass & Subclass)
- 超类与子类(Superclass & Subclass)
- 超类与子类(Superclass & Subclass)
- 窗口、线程、超类、子类
- Core Java (十一) Java 继承,类,超类和子类
- <Core Java> 5.1 类、超类和子类
- 自学java(6)继承类,超类和子类
- Java Exception 在超类和子类间的关系
- 黄阶低级 - 《 Java 核心》- 5.1 类、超类和子类(二) - 修改0次
- 黄阶低级 - 《 Java 核心》- 5.1 类、超类和子类(三) - 修改 1 次
- 混迹于C++之基类和子类(一)
- Java继承-类、超类、子类
- Windows精解:超类与子类
- log4cpp简单使用
- APICloud 开发app 之 工具:Sublime插件
- 802.11协议帧格式、Wi-Fi连接交互过程、无线破解入门研究
- 阿里云centos7.2安装mysql-5.7.20
- HTTP协议
- 类,超类和子类(一)
- 拦截器学习
- java基础
- linux的cpu的调度以及性能调节
- Go语言之三驾马车
- java中的double和float数据精度
- 大数据时代的水利遥感应用创新论坛即将于11月震撼来袭!
- C#位运算符
- 【设计模式】(4)--最常用设计模式之工厂模式