当前位置:编程学习 > JAVA >>

父类与子类继承问题

子类可以继承父类的方法么?
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();
}
}


两个类好像跟普通类一样,都是通过调用的关系。
请问高手:继承究竟要怎么理解好呢?可能我已经走入一个误区了........ --------------------编程问答-------------------- 比如你的B类继承自C类,就继承了C类的getHello和say方法,所以在say2方法中可以直接调用getHello方法。 --------------------编程问答-------------------- 都不用往下看了。。
 System.out.println("Hi="+this.getHello());//此处调用的是C类的getHello(),
        this.say();//此处也是调用C类的方法,说明本类中根本没有say()方法。
你这里的this,指向的你B的具体对象。。如果他没有继承到getHello()和say()方法,他怎么能调用这2个方法?。。你又没重写父类的方法,所以从打印的值看上去你以为是调用的C的方法?。。。 --------------------编程问答-------------------- 那C中的方法全是pulbic不会被调用到么 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 貌似可以重载吧!
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,