java 继承 冒号_java继承

类继承格式

class Manager extendsEmployee

{//添加方法和域

public void setBonus(doubleb)

{

bonus=b;

}publicgetSalary()

{double baseSalary = super.getSalary();return baseSalary +bonus;

}private doublebonus;

}

java继承采用extends关键字,代替了c++里面的冒号,在java中,所有继承都是公有继承,没有C++中的私有继承和保护继承。

在这里,Manager为Employee的子类,Employee为Manager的超类。

super

由于Manager的薪水计算方法跟普通雇员的计算方法不同,所以需要在Manager类中复写Employee类中的getSalary方法,

由于Manager的薪水为基本工资再加奖金,所以可以调用Employee的getSalary方法然后再加上奖金,但是由于两者方法名字相同,

所以不能直接调用,需要使用super.getSalary()的方式来调用。super不是一个对象的引用,而是指示编译器调用超类方法的特有关键字,

与this不同。

super还可以在构造器中使用,例如在Manager中有如下构造器:

public  Manager(String n, double s, int year, int day)

{

super(n, s, year, day);

bonus = 0;

}

在上述构造器中,super是调用的超类中的构造器,由于Manager类的构造器不能对超类Employee的私有域进行初始化,所以只能通过调用

超类的构造器来完成初始化,然后再初始化子类新增的域。如果子类没有显式调用超类的构造器,则调用超类的默认构造器,如果超类不存在默认构造器,则会报错。

在C++中,子类构造函数中会通过初始化列表来对父类进行初始化。

多态

在java语言中, 对象变量是多态的。一个超类的对象变量可以引用一个超类对象,也可以引用任何一个子类的对象

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值