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();
        } 
    

    }

    评论

报告相同问题?

悬赏问题

  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥30 python代码,帮调试,帮帮忙吧