楼主的意思是否是这样的呢? public class A { public void display() { System.out.println("I am in A"); } } public class B extends A { public void display() { System.out.println("I am in B"); } } public class C extends B { public void display() { System.out.println("I am in C"); } } 你的意思是要在C中调用B中的display()可以用super.display(),那么在C中调用A中的display()要怎样是吧?
B
C
晕,如果A中的方法不是私有的,一定被B继承了,因此也就属于B。所以,C要用的话,还是用super 就可以了。
如果希望子类可以访问,一般用protected修饰
如果B覆盖了A的同一个方法,C肯定无法调用到A的同名方法了.
而且在调用的时候也只能用class.method调用(这里method指的是有重名的method)
这样来说,就只能把A和C类里的method写成static
然后用A.method,C.method调用
不必要去覆盖
protected修饰的函数,在private的基础上再加一个子类可以访问super()就是父类的构造函数,它的访问权限和一般函数一样如果要实现同名函数,就直接覆盖啊
public class A
{
public void display()
{
System.out.println("I am in A");
}
}
public class B extends A
{
public void display()
{
System.out.println("I am in B");
}
}
public class C extends B
{
public void display()
{
System.out.println("I am in C");
}
}
你的意思是要在C中调用B中的display()可以用super.display(),那么在C中调用A中的display()要怎样是吧?
我看过在超类里方法是public 那不是更没意义用super了 有人指点下吗?