一.方法重写:在子类中使用和父类一样的签名以及一样的返回值类型来对该方法进行定义。
public class test {
public static void main(String[] args)
{
A a=new A();
a.p(10);
a.p(10.0);
}
}
public class B {
public void p(double i)
{
System.out.println(i*2);
}
}
public class A extends B{
//重写父类B的方法p,因为使用和父类一样的返回值类型和签名
public void p(double i){
System.out.println(i);
}
}
运行结果:分析,因为重写这里,test类中调用的都是A中的p()方法,要调用父类的必须用在子类里用super.方法名(),但是a是实例对象,不是类,所以不可以用super方法
二.方法重载:1.在同一个类中,使用同样的函数名称但是不同的签名来定义多个方法。
2.子类在父类中使用同样的函数名称但是不同的签名来定义多个方法。
public class test {
public static void main(String[] args)
{
A a=new A();
a.p(10);
a.p(10.0);
}
}
public class B {
public void p(double i)
{
System.out.println(i*2);
}
}
public class A extends B{
//重载父类B的方法p,因为使用和父类相同方法名但不同的签名
public void p(int i){
System.out.println(i);
}
}
运行结果:a.p(10.0)调用B中p , a.p(10)调用A中p