[求助]java代码的意思?
class Person
{
public static void prt(String s)
{
System.out.println(s);
}
Person()
{
System.out.println("l Person.");
}
Person(String name)
{
System.out.println("A person name is:"+name);
}
}
public class Chinese extends Person{
Chinese(){
super(); //调用父类构造函数(1)
System.out.println("A chinese.");//(4)
}
Chinese(String name){
//super(name);//调用父类具有相同形参的构造函数(2)
System.out.println("his name is:"+name);
}
Chinese(String name,int age){
this(name);//调用当前具有相同形参的构造函数(3)
System.out.println("his age is:"+age);
}
public static void main(String[] args){Chinese cn=new Chinese();
new Chinese("kevin");
cn=new Chinese("kevin",22);
}
}
结果为什么是这个样子,
l Person.为什么会出现3次
谢谢!
搜索更多相关的解决方案:
java 代码
----------------解决方案--------------------------------------------------------
你的Chinese类是继承自Person类的,所以每一次 new 一个chinese类的时候都会相应调用他的父类一次,所以他就有三个 l Person了.明白吗?
----------------解决方案--------------------------------------------------------
明白了,是不是默认超类的不带参数的构造方法.三个对象呢!
----------------解决方案--------------------------------------------------------
有个建议:下次粘代码的时候,搞一下格式,要不看着很费劲,呵呵
----------------解决方案--------------------------------------------------------
什么意思啊,不明白啊? --->是不是默认超类的不带参数的构造方法.三个对象呢!
----------------解决方案--------------------------------------------------------
子类的对象初始化时都会调用父类的构造方法
----------------解决方案--------------------------------------------------------
若在子类的构造方法中没有super(...)语句时.系统将隐含调用父类无参数的构造方法。
记住就可以了哦。 以后一切照着用.
----------------解决方案--------------------------------------------------------
知道了!
----------------解决方案--------------------------------------------------------