【JAVA】帮忙分析个程序
- 提问者网友:献世佛
- 2021-05-18 02:39
String name;
String nick_name;
public ExSuper(String s,String t){
name = s;
nick_name = t;
}
public String toString(){
return name;
}
}
public class Example extends ExSuper{
public Example(String s,String t){
super(s,t);
}
public String toString(){
return name +"a.k.a"+nick_name;
}
public static void main(String args[]){
ExSuper a = new ExSuper("First","1st");
ExSuper b = new Example("Second","2nd");
System.out.println("a is"+a.toString());
System.out.println("b is"+b.toString());
}
}
说细点,谢谢。
- 五星知识达人网友:廢物販賣機
- 2021-05-18 04:08
首先执行输出的结果应该如下
a is First
b is Seconda.k.a2nd
这个结果是这样来的
ExSuper这个类有两个属性name和nick_name
ExSuper的构造方法完成将参数s赋给name,t赋给nick_name
ExSuper还有一个toString方法,返回name
另外Example这个类继承了ExSuper,其构造方法实现直接使用父类的构造实现super(s,t); 及对name和nick_name赋值
同时Example类重写了toString方法,返回name +"a.k.a"+nick_name
因此,main里面对象a以ExSuper实例化,输出时toString就用ExSuper的toString实现输出,及name的值First
对象b以Example实例化,输出时toString因为在Example里重写了,因此就以name +"a.k.a"+nick_name返回,即Seconda.k.a2nd
- 1楼网友:末日狂欢
- 2021-05-18 06:44
子类Example 继承了父类ExSuper 在子类的构造方法中 有super关键字 是调用父类的构造方法 而且必须得调用 还得放在最前面 用于初始化父类中的变量 如果不写super 默认会掉 父类中无参构造方法 但是这里找不到 所以会报错 在构造方法中还可以用this关键字 表示调用该类中的其他构造方法
- 2楼网友:千夜
- 2021-05-18 06:23
- 3楼网友:迟山
- 2021-05-18 05:54
这里讲的是 JAVA的多态~
比如说用父类的遥控器来控制子类里面的 方法~
- 4楼网友:一袍清酒付
- 2021-05-18 04:33
首先一目了然,Example继承了ExSuper
ExSuper a = new ExSuper("First","1st"); ExSuper 这个里面复写的toString()返回的是name;方法构造函数是:
public ExSuper(String s,String t){ name = s;nick_name = t; } 输出a is +a.toString()是 a is First
ExSuper b = new Example("Second","2nd");和ExSuper传参一样...但toString()返回的是 name+"a.k.a"+nick_name; 即输出的"b is"+b.toString()为:Seconda.ka2nd!
- 5楼网友:举杯邀酒敬孤独
- 2021-05-18 04:23
重载了父类的一个构造方法 但是其实结果一样
重写了父类的一个方法 所以后面的输出值不同了
结果
a is First b is Seconda.k.a2nd