JAVA父类调用子类的方法与子类调用父类的方法有什么不同?

来源:百度知道 编辑:UC知道 时间:2024/05/17 20:52:03
父类调用子类的方法 只能是在 父类里构造子类的对象,通过对象来调用!怎么理解?

class Base{
Base(){

}
public void m(){

}
}
class Sub extends Base{

Sub(){
super(); //调用父类的构造方法
super.m();//调用父类的方法
}
public void n(){

}
public static void main(String[] args){
Sub s = new Sub();
s.m();//这里应该理解为:
子类继承了父类,那么这个m()应该属于子类的了!,所以我们在重写的时候要覆盖父类的方法! 那么这里算调用子类自己的方法了
Base b = new Base();
b.m();//父类对象调用自己方法
//b.n();编译错误,因为子类的方法对父类不可见!
}
}

父类调用子类的方法 只能是在 父类里构造子类的对象,通过对象来调用!
如果子类的是静态方法,那么直接拿类调用!

子类调用父类的方法 用 super.methodName(); 只能在非静态方法
里这样调用

补充:
就是 在 Base 类里
Sub s = new Sub();
s.n();