Java继承中的覆盖
如果子类与父类中都有方法头完全相同的两个方法,这种现象就称为覆盖。
子类不能继承父类已被覆盖的方法。
覆盖与重载是完全不同的两个概念!
覆盖父类的方法 示例:
package ch08;
class Person{
protected String name;
protected int age;
public Person(String name, int age){
this.name=name;
this.age=age;
}
protected void show(){ //父类的show方法
System.out.println("姓名:"+name+" 年龄:"+age);
}
}
class Student extends Person{
private String department;
public Student (String name,int age,String dep){
super(name,age);
department=dep;
}
protected void show(){ //子类的show方法
System.out.println("系别:"+ department);
}
}
public class Demo{
public static void main(String[] args){
Student stu=new Student("王永涛",24, "电子");
stu.show(); //子类对象调用自己覆盖的show方法
}
}
结论:
(1)子类调用的是自己的show()方法,该方法已覆盖父类的show()方法;
(2)子类覆盖父类方法时,只能在父类方法的基础上扩大访问权限,不能缩小。
10万+

被折叠的 条评论
为什么被折叠?



