kiweiskeepgoing 2016-07-30 07:17 采纳率: 0%
浏览 1065

java中关于super关键字与继承的理解

public class Chinese extends Person{
public void print(){
System.out.println("Chinese:");
super.print(); //调用父类的print
}
public static void main(String[] args){
Chinese chn=new Chinese();
chn.setName("kiweis");
chn.setAge(18); //chn的age数据已设置成18
chn.print();
System.out.println();
}
}

class Person{
public int c;
private String name;
private int age;
protected void setName(String name){
this.name=name;
}
protected void setAge(int age){
this.age=age;
}
protected void print(){
System.out.println("Name="+name+" Age="+age); /*子类通过super来调用,打印的究竟是子类的name还是父类的name呢?*/
}
}

以上定义的Chinese继承Person,我的理解是Chinese继承了Person的数据域和方法,调用set方法设置的不是Chinese的String和age么,那么super.print()打印的不是Person的String和age吗,也就是null和0,为什么运行程序输出的是kiweis和18

  • 写回答

5条回答

  • 梦之马 2016-07-30 07:51
    关注

    不不不 你的代码是有误的
    public class Chinese extends Person {
    @Override
    public void print(){
    System.out.println("Chinese:");
    super.print();
    }
    public static void main(String[] args){
    Chinese chn=new Chinese();
    chn.setName("kiweis"); //
    chn.setAge(18);
    //这是子类调用父类Person的print()方法
    chn.print(); //可以是做中国人是人的一种 输出的也是人的信息

        Person ps= new Person();    //父类是没信息的 所以是空
        System.out.println("person information:");
        ps.print();
        } 
    

    }

    评论

报告相同问题?

悬赏问题

  • ¥50 树莓派安卓APK系统签名
  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥15 state显示变量是字符串形式,但是仍然红色,无法引用,并显示类型不匹配
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波