黑马程序员技术交流社区

标题: 有个子类继承父类方面的代码 [打印本页]

作者: 杨翔    时间: 2013-6-16 00:21
标题: 有个子类继承父类方面的代码
本帖最后由 杨翔 于 2013-6-16 19:00 编辑
  1. public class Test
  2. {
  3.     public static void main(String[] args)
  4.     {
  5.             Person p = new Person("lisi", 34);
  6.         p.sayHello();
  7.     }

  8. }
  9. //创建一个人的类
  10. class Person
  11. {
  12.         private String name;
  13.     private int age;   
  14.     //定义构造函数  
  15.     Person(String name, int age)
  16.     {
  17.             this.name = name;
  18.             this.age = age;
  19.     }
  20.     //定义一个说话的方法
  21.     public void sayHello()
  22.     {
  23.         System.out.print("我是" + this.name + "我的年龄是" + this.age);        
  24.     }
  25. }

  26. // 创建一个Chinese类继承Person
  27. class Chinese extends Person
  28. {
  29.     private String country;
  30.     Chinese(String name, int age, String country)
  31.     {
  32.             //调用父类的构造方法
  33.             super("lisan", 44);
  34.               this.country = country;
  35.     }
  36. }
复制代码
我想在chinese类里面重写sayHello方法的,就是说的时候不光说姓名年龄还说国家,但是方法里面怎么调姓名年龄来着?忘了,求教
作者: 苑永志    时间: 2013-6-16 00:54
子类中是不可以直接访问父类的私有(private)属性和方法的,一般的做法是为私有属性定义get方法
  1. public String getName() {
  2.         return name;
  3. }
  4. public int getAge() {
  5.         return age;
  6. }
复制代码
这时候再在Chinese中重写父类的sayHello()方法,就可以通过get方法得到父类中的属性值了
  1. @Override
  2. public void sayHello() {
  3.         System.out.println("country=" + country + ", name=" + super.getName() + ", age=" + super.getAge());
  4. }
复制代码

作者: 知行    时间: 2013-6-16 07:25
你可以把 父类的private修饰的属性改成,protected修饰,然后就可以了
作者: 袁梦希    时间: 2013-6-16 08:10
知行 发表于 2013-6-16 07:25
你可以把 父类的private修饰的属性改成,protected修饰,然后就可以了

尽量把内容描述的详细    最好用代码给楼主体现出来
作者: 知行    时间: 2013-6-16 08:25
袁梦希 发表于 2013-6-16 08:10
尽量把内容描述的详细    最好用代码给楼主体现出来

好的 我下次注意
作者: 袁梦希    时间: 2013-6-16 08:28
知行 发表于 2013-6-16 08:25
好的 我下次注意

不是注意   只是为了你的学习,如果你只写了一句话   其他人也不会懂  如果你写的全面有助于自己的思考  确实;P




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2