当前位置: 代码迷 >> Java相关 >> 为了这个题目搞的我快晕了!
  详细解决方案

为了这个题目搞的我快晕了!

热度:107   发布时间:2006-09-05 19:59:41.0
为了这个题目搞的我快晕了!

class Person{
//属性
String name;
String sex;
int age;
double height;
//构造方法
public Person(){
System.out.println("我的产生不需要参数。。。");
}
public Person(String name,String sex,int age,double height){
System.out.println("我是携带信息产生的。。。。");
this.name=name;
this.sex=sex;
this.age=age;
this.height=height;
}
//方法
public void eat(){
System.out.println(this.name+"正在吃饭");
}
public void sleep(){
System.out.println(this.name+"正在睡觉");
}
}
//创建学生类继承人类
class Student extends Person{
//添加属性
int id;
//构造方法不能继承
Student(){
System.out.println("我是无参的学生...");
}
Student(String name,int id){
System.out.println("我有参数了。。。");
this.name=name;
this.id=id;
}
Student(String name,int id,String sex,int age,double height){
super(name,sex,age,height);
System.out.println("我要调用主类构造。。。");
this.id=id;
}
//添加方法
public void study(){
System.out.println(this.id+"号学员正在学习,好同志鼓励一下");
}
}
public class StudentDemoTwo{
public static void main(String[] args){
Person xiaoLi=new Person("小李","男",20,175);
xiaoLi.eat();
xiaoLi.sleep();

Student zhangSan=new Student("张三",1,"男",20,175);
zhangSan.eat();
zhangSan.study();
}

}
我是想问一下,在zhangsan生成这个对象的时候为什么没有调用父类中的
public Person(){
System.out.println("我的产生不需要参数。。。");
}
我知道第一个调用了,因为找到匹配的了!第二个没有找到会不会调用啊!谢谢了!我为这个题目头都打了!在线等!

搜索更多相关的解决方案: 信息  public  double  

----------------解决方案--------------------------------------------------------
以下是引用神经塔在2006-9-5 19:59:41的发言:

class Person{
//属性
String name;
String sex;
int age;
double height;
//构造方法
public Person(){
System.out.println("我的产生不需要参数。。。");
}
public Person(String name,String sex,int age,double height){
System.out.println("我是携带信息产生的。。。。");
this.name=name;
this.sex=sex;
this.age=age;
this.height=height;
}
//方法
public void eat(){
System.out.println(this.name+"正在吃饭");
}
public void sleep(){
System.out.println(this.name+"正在睡觉");
}
}
//创建学生类继承人类
class Student extends Person{
//添加属性
int id;
//构造方法不能继承
Student(){
System.out.println("我是无参的学生...");
}
Student(String name,int id){
System.out.println("我有参数了。。。");
this.name=name;
this.id=id;
}
Student(String name,int id,String sex,int age,double height){
super(name,sex,age,height);
System.out.println("我要调用主类构造。。。");
this.id=id;
}
//添加方法
public void study(){
System.out.println(this.id+"号学员正在学习,好同志鼓励一下");
}
}
public class StudentDemoTwo{
public static void main(String[] args){
Person xiaoLi=new Person("小李","男",20,175);
xiaoLi.eat();
xiaoLi.sleep();

Student zhangSan=new Student("张三",1,"男",20,175);
zhangSan.eat();
zhangSan.study();
}

}
我是想问一下,在zhangsan生成这个对象的时候为什么没有调用父类中的
public Person(){
System.out.println("我的产生不需要参数。。。");
}
我知道第一个调用了,因为找到匹配的了!第二个没有找到会不会调用啊!谢谢了!我为这个题目头都打了!在线等!

怎么可能调父类的无参构造函数呢?你super的时候是带参数的啊,唯一匹配的是
public Person(String name,String sex,int age,double height){
System.out.println("我是携带信息产生的。。。。");
this.name=name;
this.sex=sex;
this.age=age;
this.height=height;
}
这个啊
----------------解决方案--------------------------------------------------------

你创建的zhangSan这个对象是new Student("张三",1,"男",20,175);
这样的
就调用
Student(String name,int id,String sex,int age,double height){
super(name,sex,age,height);
System.out.println("我要调用主类构造。。。");
this.id=id;
}


----------------解决方案--------------------------------------------------------
楼上的有点创意好不好?
----------------解决方案--------------------------------------------------------
那应该怎么说??
----------------解决方案--------------------------------------------------------

呵呵,也明白了不少!谢了!


----------------解决方案--------------------------------------------------------
  相关解决方案