黑马程序员技术交流社区
标题:
有关继承的疑问
[打印本页]
作者:
崔一恒
时间:
2013-7-20 17:48
标题:
有关继承的疑问
本帖最后由 崔一恒 于 2013-7-21 20:30 编辑
public class Test8 {
public static void main (String[] args) {
Person p = new Person();
p.sayHello();
Chinese c = new Chinese(20,"张三");
c.sayHello();
}
}
class Person {
private int age;//年龄属性
private String name;//姓名属性
public Person(){//不带参数的构造方法
name = new String();
}
public void Person(int a, String n){//带参数的构造方法
this.age = a;
this.name = n;
}
public int getAge(){
return age;}
public String getName(){
return name;}
public void sayHello(){
System.out.println ("我是***我的年龄是***");
}
}
class Chinese extends Person{//Chinese继承Person类
public void Chinese(int a, String n) {
super(a,n);}
public void sayHello(){ //覆盖父类的sayHello方法
System.out.println ("我是"+getName()+" 我的年龄是"+getAge());
}
}
复制代码
这段代码老有问题 求高手指点
作者:
草貌路飞
时间:
2013-7-20 18:07
你的两个带参数的构造方法都 有返回值,不能的
作者:
占琳
时间:
2013-7-20 18:29
class Person {
public String name;
public int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public void sayHello() {
System.out.println("我的名字是:" + name);
System.out.println("我的年龄是:" + age);
}
}
class Chinese extends Person
{
public Chinese(String name, int age) {
super(name, age);
}
}
public class Test8{
/**
* @param args
*/
public static void main(String[] args) {
Person person=new Person("alice", 20);
person.sayHello();
Chinese c=new Chinese("tom", 16);
c.sayHello();
}
}
复制代码
作者:
占琳
时间:
2013-7-20 18:33
首先用private修饰的属性无法被继承,应该用public,其次需要打印的是结果没有必要用get方法,
第三个构造函数没有返回值并且不可以被初始化,建议楼主加强一下基础。
作者:
糯米酿酒
时间:
2013-7-20 18:38
子类不能继承父类中的private属性成员,如果要用应该改为public
作者:
xscn
时间:
2013-7-20 18:56
public int age;//年龄属性
public String name;//姓名属性
//错误1处,private修饰的变量无法被继承
public void Person(int a, String n){//带参数的构造函数
this.age = a
this.name = n}
//错误2,构造函数没有返回值类型,子类代码同理
在你基础上改错后的代码
public class Test8 {
public static void main (String[] args) {
Person p = new Person();
p.sayHello();
Chinese c = new Chinese(20,"张三");
c.sayHello();
}
}
class Person {
public int age;//年龄属性
public String name;//姓名属性
Person(){}//无参构造函数
public Person(int a,String n){//带参数的构造方法
this.age = a;
this.name = n;
}
public int getAge(){
return age;}
public String getName(){
return name;}
public void sayHello(){
System.out.println ("我是***我的年龄是***");
}
}
class Chinese extends Person{//Chinese继承Person类
public Chinese(int a, String n)
{super(a,n);}
public void sayHello(){ //覆盖父类的sayHello方法
System.out.println ("我是"+getName()+" 我的年龄是"+getAge());
}
}
复制代码
作者:
yinjiek
时间:
2013-7-20 20:18
public class person extends extend {
protected person(int age, String nameString) {
super(age, nameString);
// TODO Auto-generated constructor stub
}
public void sayHello(){
System.out.println(getAge()+":"+getNameString());
}
public static void main(String[] args) {
extend person=new extend(3,"nihao");
person.sayHello();
person person2=new person(2, "haha !");
person2.sayHello();
}
}
这个类单独写,不要把所有类放在一起,name=new String();!!!!去了这又是不对象new什么!
作者:
付龙
时间:
2013-7-21 07:15
private int age;//年龄属性
private String name;//姓名属性
父类private修饰,子类不能继承。
public void Person(int a, String n){//带参数的构造函数
this.age = a
this.name = n}
构造函数没有返回值
作者:
杜光
时间:
2013-7-21 08:47
楼主你好 如果帖子的问题已经解决,请把帖子的类型改为“已解决”。
作者:
杨兴庭
时间:
2013-7-21 12:31
子类只能继承父类中非私有的属性和方法。。。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2