当前位置:文档之家› Java中子类重写父类方法

Java中子类重写父类方法

}
有一个子类Programmer(程序员),其中继承Meeting(开会),重写Working(工作)
public class Programmer extends Employee {
public void Working() {
System.out.println("我在努力敲代码........"); } }
此时我们可以看到,父类虽然提供了两个方法,但是子类只继承了一个,另外一个被重写。 在main方法中实例化Programmer和SaleMan,调用Working方法,将执行子类重写之后的代码。
Programmer p = new Programmer(); p.Meeting(); //打印"我在努力开会........" p.Working(); //打印"我在努力敲代码........"
方法重写
方法重写:父类提供了方法给子类继承,子类不愿意继承,子类选择在自己这里把父类方法重新写一 遍。 子类重写父类方法,要求方法的定义完全一致(返回值,方法名,参数),具体实现不一样。
案例:重写的基本应用: 有一个父类Employee(员工类),其中两个方法:Meeting(开会),Working(工作)
案例:final定义的方法不能被重写:
public class Employee { public void Meeting() { System.out.println("我在努力开会........"); } public final void Working() //此处使用final关键字,表示此方法不能被重写。 { System.out.println("我在努力工作........"); }
有一个子类SaleMan(销售员),其中继承Meeting(开会),重写Working(工作)
public class SaleMan extends Employee {
public void Working() {
System.out.println("我在努力抽烟,喝酒,洗脚........"); } }
public class Employee { public void Meeting() { System.out.println("我在努力开会........"); } public void Working() { System.out.println("我在努力工作........"); }
SaleMan s = new SaleMan(); s.Meeting(); //"我在努力开会........" s.Working(); //打印"我在努力抽烟,喝酒,洗脚........"
备注:继承支持多重继承,那么重写同样可以多重重写,即A是爷爷,B是爸爸,C是儿子,B可以重写A的 方法,那么C也可以重写B的grammer extends Employee {
//此处会报错,因为Working方法在父类中使用final关键字修饰,是不能被重写的。 public void Working() {
System.out.println("我在努力敲代码........"); } }
相关主题