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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

workc

初级黑马

  • 黑马币:46

  • 帖子:32

  • 精华:0

© workc 初级黑马   /  2017-11-5 10:52  /  1096 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

4.按要求编写一个Java应用程序:(1)定义一个接口CanCry,描述会吼叫的方法public void cry()。(2)分别定义狗类(Dog)和猫类(Cat),实现CanCry接口。实现方法的功能分别为:打印输出“我是狗,我的叫声是汪汪汪”、“我是猫,我的叫声是喵喵喵”。(3)定义一个主类G,         ①定义一个void makeCry(CanCry c)方法,其中让会吼叫的事物吼叫。        ②在main方法中创建狗类对象(dog)、猫类对象(cat)、G类对象(g),用g调用makecry方法,让狗和猫吼叫。
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端

5 个回复

倒序浏览
丶唯萌Pro 来自手机 中级黑马 2017-11-5 11:37:17
沙发
按照题的要求来就可以了
回复 使用道具 举报
都把步骤描述的这么清楚了,照着写就好了
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
[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);
	}
}
\
希望能帮到你,兄弟
回复 使用道具 举报
这道题看似简单,但是里面存在一个"坑",就是public void makeCry(CanCry c) {} .  里面CanCry c 看似是接口的实例化,但是接口和抽象类是不可以被实例化的,所以它真正指的不是接口的实体而是实现接口方法的类的实体(这里面哪个类实现了接口的方法,c就代表哪个类的实体). 明白这一点这道题目就迎刃而解了.
回复 使用道具 举报
加油,相信你可以的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马