子类可以继承父类的方法么?
package next7;class C {
private String Hello="Hello";
public String getHello() {
return Hello;
}
public void  say(){
System.out.println("Hello="+this.getHello());
}
}class B extends C{
public void say2(){
System.out.println("Hi="+this.getHello());//此处调用的是C类的getHello(),
this.say();//此处也是调用C类的方法,说明本类中根本没有say()方法。
}
} public class A{
public static void main(String[] args) {
C a = new C();
B b = new B();
a.say();
b.say2();
}
}感觉子类没有继承方法,好像连域都没有继承,两个类好像没什么关系。package next7;class C {
private String Hello="Hello";
private String getHello() {
return Hello;
}
private void  say(){
System.out.println("Hello="+this.getHello());
}
}class B extends C{
public void say2(){
System.out.println("Hi="+super.getHello());//报错,
super.say();//报错
}
} public class A{
public static void main(String[] args) {
C a = new C();
B b = new B();
//a.say();
//b.say2();
}
}
两个类好像跟普通类一样,都是通过调用的关系。
请问高手:继承究竟要怎么理解好呢?可能我已经走入一个误区了........

解决方案 »

  1.   

    比如你的B类继承自C类,就继承了C类的getHello和say方法,所以在say2方法中可以直接调用getHello方法。
      

  2.   

    都不用往下看了。。
     System.out.println("Hi="+this.getHello());//此处调用的是C类的getHello(),
            this.say();//此处也是调用C类的方法,说明本类中根本没有say()方法。

    你这里的this,指向的你B的具体对象。。如果他没有继承到getHello()和say()方法,他怎么能调用这2个方法?。。你又没重写父类的方法,所以从打印的值看上去你以为是调用的C的方法?
      

  3.   

    那C中的方法全是pulbic不会被调用到么