黑马程序员技术交流社区

标题: 求大神教教怎么做, [打印本页]

作者: workc    时间: 2017-11-5 10:52
标题: 求大神教教怎么做,
4.按要求编写一个Java应用程序:(1)定义一个接口CanCry,描述会吼叫的方法public void cry()。(2)分别定义狗类(Dog)和猫类(Cat),实现CanCry接口。实现方法的功能分别为:打印输出“我是狗,我的叫声是汪汪汪”、“我是猫,我的叫声是喵喵喵”。(3)定义一个主类G,         ①定义一个void makeCry(CanCry c)方法,其中让会吼叫的事物吼叫。        ②在main方法中创建狗类对象(dog)、猫类对象(cat)、G类对象(g),用g调用makecry方法,让狗和猫吼叫。

作者: 丶唯萌Pro    时间: 2017-11-5 11:37
按照题的要求来就可以了
作者: 蝴蝶心跳    时间: 2017-11-5 13:42
都把步骤描述的这么清楚了,照着写就好了

作者: _J2EE_LiXiZhen    时间: 2017-11-6 00:02
[Java] 纯文本查看 复制代码
/*
* 定义一个接口CanCry
* */

public interface CanCry {
        //描述会吼叫的方法public void cry()
        public abstract void cry();
}
/*
* 定义一个狗类
* */

public class Dog implements CanCry {
        //狗类叫的方法
        public void cry() {
                System.out.println("我是狗,我的叫声是汪汪汪");
        }
}
/*
* 定义一个猫类
* */

public class Cat implements CanCry{
        //猫类叫的方法
        public void cry() {
                System.out.println("我是猫,我的叫声是喵喵喵");
        }
}
/*
* 定义一个主类
* */

public class G {
        //定义一个void makeCry(CanCry c)方法,其中让会吼叫的事物吼叫
        public void makeCry(CanCry c) {
                c.cry();
        }
}
/*
* main方法类
* */

public class MainApp {
        public static void main(String[] args) {
                //创建猫对象
                Cat cat = new Cat();
                //创建狗对象
                Dog dog = new Dog();
                //创建主类G对象
                G g = new G();
                //用g调用makecry方法,让狗和猫吼叫。
                g.makeCry(cat);
                g.makeCry(dog);
        }
}
\
希望能帮到你,兄弟
作者: _J2EE_LiXiZhen    时间: 2017-11-6 00:14
这道题看似简单,但是里面存在一个"坑",就是public void makeCry(CanCry c) {} .  里面CanCry c 看似是接口的实例化,但是接口和抽象类是不可以被实例化的,所以它真正指的不是接口的实体而是实现接口方法的类的实体(这里面哪个类实现了接口的方法,c就代表哪个类的实体). 明白这一点这道题目就迎刃而解了.
作者: Oliverwqcwrw    时间: 2017-11-6 08:52
加油,相信你可以的




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