黑马程序员技术交流社区
标题:
java继承问题
[打印本页]
作者:
zhkqy
时间:
2013-12-9 18:41
标题:
java继承问题
class Person
{
public String name;
public int age;
public Person(){}
public Person(String name,int age)
{
this.name=name;
this.age=age;
}
public void getIn()
{
System.out.println(name);
System.out.println(age);
//System.out.println(name,"age="+age);错
}
public void eat()
{
System.out.println("chifan");
}
}
class Student extends Person
{
public String lesson;
public Student(){}
public Student(String name,int age)
{
super(name,age);
}
public Student(String name,int age,String lesson)
{
this(name,age);
this.lesson=lesson;
}
public void less()
{
System.out.println("shangke");
}
/* public static void main(String[] args)
{
Student str=new Student();
str.name="zhagsan";
str.age=15;
str.eat();
str.getIn();
str.less();
}
*/
}
class TestStudent
{
public static void main(String[] args)
{
Student str=new Student();
str.name="znagsan";
str.age=15;
str.eat();
str.getIn();
str.less();
}
}
复制代码
谁能帮我讲讲这里的错误。打印出name age.
作者:
Forevery
时间:
2013-12-9 18:51
你在定义构造函数的时候,定义了一个空的构造函数和一个带参数的构造函数。而在调用的时候,你调用的是那个空的构造函数,而在空构造函数里面是没有处理语句的。
你可以在55行处开始改下:
Student stu = new Student("zhangsan",20);
stu.getIn();
这样就可以出结果了
作者:
翼展哈哈
时间:
2013-12-9 20:48
您好,我看了一下您的代码,并在编译器里编译运行了一遍,发现没什么错误呀!运行结果贴给楼主吧。
chifan
znagsan
15
shangke
name和age的值也都打印出来了。
2楼说的也是对的,但是楼主的代码因为是在同一个包中,用
str.name="znagsan";
str.age=15;
赋值在编译运行上也是没什么问题的!
希望您能理解,有什么说的不对的,欢迎批评指正!
作者:
zhkqy
时间:
2013-12-10 15:19
翼展哈哈 发表于 2013-12-9 20:48
您好,我看了一下您的代码,并在编译器里编译运行了一遍,发现没什么错误呀!运行结果贴给楼主吧。
chifan
...
非常感谢,弄懂了!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2