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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

//讲英语这行为定义为抽象接口
interface Speak
{
        public abstract void English();
}
class person//定义一个父类
{
        private String name;//姓名
        private int age;//年龄

        public person(){}//定义空参

        public person(String name,int age)//定义实参
        {
                this.name = name;
                this.age = age;
        }
       
        /*定义代码块*/
        {
                eat();
                sleep();
                System.out.println("在吃饭");
                System.out.println("在睡觉");
        }

        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 sleep()//成员函数--行为
        {
                System.out.println(name+"在睡觉");
        }

        public void eat()//成员函数--行为
        {
                System.out.println(name+"在吃饭");
        }

        public void show()//输出类函数
        {
                System.out.println("姓名:"+name+",年龄:"+age);
        }
}

//定义一个乒乓球运动员的子类,继承person父类,实现English接口
class pingpongsport extends person implements Speak
{
        public pingpongsport(){}

        public pingpongsport(String name,int age)
        {
                super(name,age);
        }

        public void exercise()
        {
                System.out.println("乒乓球运动员在练习");
        }

        public void life()
        {
                eat();
                sleep();
                System.out.println("乒乓球运动员在吃饭");
                System.out.println("乒乓球运动员在睡觉");
        }

        public void English()
        {
                System.out.println("乒乓球运动员讲英语");
        }
}

//定义一个篮球运动员的子类,继承person父类
class basketballsport extends person
{
        public basketballsport(){}

        public basketballsport(String name,int age)
        {
                super(name,age);
        }

        public void exercise()
        {
                System.out.println("篮球运动员在练习");
        }

        public void life()
        {
                eat();
                sleep();
                System.out.println("篮球运动员在吃饭");
                System.out.println("篮球运动员在睡觉");
        }
}

//定义一个乒乓球教练的子类,继承person父类,实现English接口
class pingpongmaster extends person implements Speak
{
        public pingpongmaster(){}

        public pingpongmaster(String name,int age)
        {
                super(name,age);
        }

        public void coach()//指导
        {
                System.out.println("乒乓球教练在指导");
        }

        public void life()
        {
                eat();
                sleep();
                System.out.println("乒乓球教练在吃饭");
                System.out.println("乒乓球教练在睡觉");
        }

                public void English()
        {
                System.out.println("乒乓球教练讲英语");
        }
}

//定义一个篮球教练的子类,继承person父类
class basketballmaster extends person
{
        public basketballmaster(){}

        public basketballmaster(String name,int age)
        {
                super(name,age);
        }

        public void coach()//指导
        {
                System.out.println("篮球教练在指导");
        }

        public void life()
        {
                eat();
                sleep();
                System.out.println("篮球教练在吃饭");
                System.out.println("篮球教练在睡觉");
        }
}

class persontext
{
        public static void main(String[] args)
        {
                Speak e = new pingpongsport();
                e.English();
                Speak e1 = new pingpongmaster();
                e1.English();

                System.out.println("++++++++++++++++++++++++++++++++++++++++++++++++++++");

                pingpongsport p = new pingpongsport();
                p.setName("邓亚萍");
                p.setAge(25);
                p.life();

                System.out.println("====================================================");

                pingpongmaster p1 = new pingpongmaster();
                p1.setName("刘国梁");
                p1.setAge(45);
                p1.life();

                System.out.println("----------------------------------------------------");

                basketballsport b = new basketballsport();
                b.setName("姚明");
                b.setAge(35);
                b.life();
               
                System.out.println("\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\////");

                basketballmaster b1 = new basketballmaster();
                b1.setName("曼达斯");
                b1.setAge(55);
                b1.life();
        }
}

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

6 个回复

倒序浏览
那是因为你使用了构造代码块,所以每次创建对象,Person类中的构造代码块都会被执行一次,所以输出东西那么多,如果你将这个构造代码块改为静态代码块,就只执行一次,输出就少了。但是你代码块里面有非静态方法,又调用了非静态属性,所以改起来就比较麻烦。


回复 使用道具 举报
同意楼上的呢!!!
回复 使用道具 举报
我觉得可以把构造代码块去掉,你这个构造代码块没有什么意义,把你想要输出的  name +“在睡觉” 这两个放到有参数的构造函数中
public Person(String name,int age)//定义实参
        {
                 this.name = name;
                 this.age = age;
                                 System.out.println(name+"在吃饭");
                                 System.out.println(name+"在睡觉");
         }
这样子,你每new一个对象,便会输出  xxx在吃饭,xxx在睡觉。
这样你没
回复 使用道具 举报
楼上已经说了
回复 使用道具 举报
                同意
回复 使用道具 举报
同意1楼
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马