黑马程序员技术交流社区
标题:
继承小问(输出结果)
[打印本页]
作者:
pengyu
时间:
2014-6-4 16:21
标题:
继承小问(输出结果)
class B {
private int radius = 10;
public void draw() {
System.out.println(“B.draw(), radius = ” + radius);
}
public B() {
System.out.println(“B constructor”);
draw();
}
}
public class A extends B {
private int radius = 1;
public void draw() {
System.out.println(“A.draw(), radius = ” + radius);
}
public A(int radius) {
this.radius = radius;
System.out.println(“A constructor”);
}
public static void main(String[] args) {
A a = new A(5);
}
}
作者:
Whero
时间:
2014-6-4 16:43
你觉得运行结果什么地方不能理解?
作者:
苗润
时间:
2014-6-4 17:48
public class Test9 {
public static void main(String[] args){
new GoodStudent();//创建GoodStudent对象 执行了person的构造方法
}
}
class Person{
public Person(){
System.out.println("调用了Person的无参构造方法");
}
}
class Student extends Person{
public Student(){
System.out.println("调用了student的无参构造");
}
public Student(String str){
System.out.println("调用了Student的有参构造方法-参数为:"+str);
}
}
class GoodStudent extends Student{
public GoodStudent(){
super("nihao");//可以指定调用哪个Student的构造方法,不能指定person的构造方法
System.out.println("创建了GoodStudent,使用了GoodStudent的无参构造方法");
}
}
复制代码
这是我写的代码 你看看 我不知道你到底是想问什么 我这个通过super指定调用父类的哪一个构造方法
关于你的那个代码 如果子类没有覆盖父类的方法(你的代码中 父类的方法就是draw) 当调用方法时 就是调用父类的方法 如果在把父类的方法覆盖了 就会调用自己的方法 不会调用父类的方法 如果想要调用父类的方法 需要去创建父类对象来实现
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2