A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 十甫寸 中级黑马   /  2013-8-8 02:23  /  1313 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

    问题:编写一个类Person,为Person类定义年龄、姓名两个属性,并且定义一个SayHello方法,方法执行时输出“我是***我的年龄是***”;定义一个Chinese类从Person类继承。
    我是这么做的:
public class Test
{
    public static void main(String[] args)
    {
        Chinese p = new Chinese();
                p.setName("黑马程序员");
                p.setAge(3);
                p.SayHello();
    }


}
class Person
{
        private String name;
        private int age;
        public void setName(String name)
        {
                this.name = name;
        }
    public String getName()
        {
                return name;
        }
        public void setAge(int age)
        {
                this.age = age;
        }
    public int getAge()
        {
                return age;
        }
        public void SayHello()
        {
                System.out.println("我是"+name+",我的年龄是:"+age);
        }
}
class Chinese extends Person
{


}

总感觉有点别扭呢!求解惑!

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1 淡定

查看全部评分

5 个回复

倒序浏览
代码没问题,子类继承了父类的方法和属性,然后在主函数中新建了子类对象,设置属性,调用方法。
你可以在子类中重写父类的方法,
回复 使用道具 举报
这样写没什么问题,在这种情况下其实没必要使用继承,子类中没有自己的特性,不使用继承的话,直接创建Person的对象并且直接调用它的方法,这样更简便,使代码更简单。
回复 使用道具 举报
你觉得那里不对劲呢?我也这样写的,问题不大
回复 使用道具 举报
本帖最后由 夜写意 于 2013-8-8 13:50 编辑

其实这个没有什么问题的。person类中有setName()。getName()。setAge()。getAge()。四种方法,Chinese在继承了person以后就会同时继承了这四种方法。
但是:人的对象一建立一般都是有姓名和年龄的,这样就可以为其定义构造函数为其初始化。
如:
  1. class Person
  2. {
  3.         String name;
  4.         int age;
  5.         Person(String name, int age)
  6.         {
  7.                 this.name = name;
  8.                 this.age = age;
  9.         }
  10. }
  11. class Chinese extends Person
  12. {
  13.         Chinese(String name,int age)
  14.         {
  15.                 super(name,age);
  16.         }
  17. }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马