public class Test01 {
public static void main(String[] args) {
A a = new A();
a.p(10);
a.p(10.0);
}
}
class B {
public void p(double i) {
System.out.println(i * 2);
}
}
class A extends B {
@Override
//方法重写:意味着在子类中提供一个对方法新的实现。方法重写是指该方法必须使用相同的签名和相同的返回值类型在子类中定义。
public void p(double i) {
System.out.println(i);
}
}
public class Test02 {
public static void main(String[] args) {
D d = new D();
d.p(10);
d.p(10.0);
}
}
class C {
public void p(double i) {
System.out.println(i * 2);
}
}
class D extends C {
//方法重载:重载意味着使用同样的名字但是不同的签名来定义多个方法
public void p(int i) {
System.out.println(i);
}
}
运行Test01 时,a.p(10)和a.p(10.0)调用的都是定义在A中的牌(double i)方法
所以程序显示的都是10.0
运行Test02 时,d.p(10)调用的是定义在D中的p(int i)方法,显示输出为10;d.p(10.0)调用的是定义在C中的p(double i)方法,显示输出为20.0;
类的继承(方法重写与重载)
最新推荐文章于 2024-08-23 10:42:01 发布