how2j.cn

本视频是解读性视频,所以希望您已经看过了本知识点的内容,并且编写了相应的代码之后,带着疑问来观看,这样收获才多。 不建议一开始就观看视频



13分20秒
本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器 如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)



步骤 1 : UML 图 —— 类之间的关系   
步骤 2 : 解释UML-类图   
步骤 3 : 解释UML-接口图   
步骤 4 : 解释UML-继承关系   
步骤 5 : 解释UML-实现关系   
步骤 6 : 练习-Animal类   
步骤 7 : 答案-Animal类   
步骤 8 : 练习-Spider类   
步骤 9 : 答案-Spider类   
步骤 10 : 练习-Pet接口   
步骤 11 : 答案-Pet接口   
步骤 12 : 练习-Cat类   
步骤 13 : 答案-Cat类   
步骤 14 : 练习-Fish类   
步骤 15 : 答案-Fish类   

步骤 1 :

UML 图 —— 类之间的关系

edit
UML-Unified Module Language
统一建模语言,可以很方便的用于描述类的属性,方法,以及类和类之间的关系
UML 图 —— 类之间的关系
解释UML-类图
步骤 3 :

解释UML-接口图

edit
解释UML-接口图
步骤 4 :

解释UML-继承关系

edit
带箭头的实线,表示 Spider,Cat, Fish都继承于Animal这个父类.
解释UML-继承关系
步骤 5 :

解释UML-实现关系

edit
表示 Fish实现了 Pet这个接口
解释UML-实现关系
步骤 6 :

练习-Animal类

edit Or  姿势不对,事倍功半! 点击查看做练习的正确姿势
1. 创建Animal类,它是所有动物的抽象父类。
2. 声明一个受保护的整数类型属性legs,它记录动物的腿的数目。
3. 定义一个受保护的构造器,用来初始化legs属性。
4. 声明抽象方法eat。
5. 声明具体方法walk来打印动物是如何行走的(包括腿的数目)。
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
查看本答案会花费3个积分,您目前总共有点积分。查看相同答案不会花费额外积分。 积分增加办法 或者一次性购买JAVA 基础总计0个答案 (总共需要0积分)
查看本答案会花费3个积分,您目前总共有点积分。查看相同答案不会花费额外积分。 积分增加办法 或者一次性购买JAVA 基础总计0个答案 (总共需要0积分)
账号未激活 账号未激活,功能受限。 请点击激活
public abstract class Animal { protected int legs; protected Animal(int legs){ this.legs = legs; } public abstract void eat(); public void walk(){ System.out.println("用 " + legs + " 条腿走路"); } }
public abstract class Animal {

	protected int legs;
	protected Animal(int legs){
		this.legs = legs;
	}
	public abstract void eat();
	public void walk(){
		System.out.println("用 " + legs +  " 条腿走路");
	}
}
步骤 8 :

练习-Spider类

edit Or  姿势不对,事倍功半! 点击查看做练习的正确姿势
1. Spider继承Animal类。
2. 定义默认构造器,它调用父类构造器来指明所有蜘蛛都是8条腿。
3. 实现eat方法
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
查看本答案会花费2个积分,您目前总共有点积分。查看相同答案不会花费额外积分。 积分增加办法 或者一次性购买JAVA 基础总计0个答案 (总共需要0积分)
查看本答案会花费2个积分,您目前总共有点积分。查看相同答案不会花费额外积分。 积分增加办法 或者一次性购买JAVA 基础总计0个答案 (总共需要0积分)
账号未激活 账号未激活,功能受限。 请点击激活
public class Spider extends Animal{ @Override public void eat() { System.out.println("spider eating"); } public Spider(){ super(8); } }
public class Spider extends Animal{

	@Override
	public void eat() {
		System.out.println("spider eating");
	}
	public Spider(){
		super(8);
	}
	
}
步骤 10 :

练习-Pet接口

edit Or  姿势不对,事倍功半! 点击查看做练习的正确姿势
根据UML类创建pet(宠物)接口
1. 提供getName() 返回该宠物的名字
2. 提供setName(String name) 为该宠物命名
3. 提供 play()方法
步骤 11 :

答案-Pet接口

edit
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
查看本答案会花费2个积分,您目前总共有点积分。查看相同答案不会花费额外积分。 积分增加办法 或者一次性购买JAVA 基础总计0个答案 (总共需要0积分)
查看本答案会花费2个积分,您目前总共有点积分。查看相同答案不会花费额外积分。 积分增加办法 或者一次性购买JAVA 基础总计0个答案 (总共需要0积分)
账号未激活 账号未激活,功能受限。 请点击激活
public interface Pet { public void setName(String name); public String getName(); public void play(); }
public interface Pet {

	public void setName(String name);
	public String getName();
	public void play();
}
步骤 12 :

练习-Cat类

edit Or  姿势不对,事倍功半! 点击查看做练习的正确姿势
1. 该类必须包含String属性来存宠物的名字。
2. 定义一个构造器,它使用String参数指定猫的名字;该构造器必须调用超类构造器来指明所有的猫都是四条腿。
3. 另定义一个无参的构造器。该构造器调用前一个构造器(用this关键字)并传递一个空字符串作为参数
4. 实现Pet接口方法。
5. 实现eat方法。
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
查看本答案会花费3个积分,您目前总共有点积分。查看相同答案不会花费额外积分。 积分增加办法 或者一次性购买JAVA 基础总计0个答案 (总共需要0积分)
查看本答案会花费3个积分,您目前总共有点积分。查看相同答案不会花费额外积分。 积分增加办法 或者一次性购买JAVA 基础总计0个答案 (总共需要0积分)
账号未激活 账号未激活,功能受限。 请点击激活
public class Cat extends Animal implements Pet{ private String name; public Cat(String name){ super(4); this.name = name; } public Cat(){ this(""); } @Override public void setName(String name) { this.name = name; } @Override public String getName() { // TODO Auto-generated method stub return name; } @Override public void play() { System.out.println("Cat is playing"); } @Override public void eat() { System.out.println("eating"); } }
步骤 14 :

练习-Fish类

edit Or  姿势不对,事倍功半! 点击查看做练习的正确姿势
1. 创建Fish类,它继承Animal类
2. 重写Animal的walk方法以表明鱼不能走且没有腿。
3. 实现Pet接口
4. 无参构造方法
5. 提供一个private 的name属性
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
查看本答案会花费3个积分,您目前总共有点积分。查看相同答案不会花费额外积分。 积分增加办法 或者一次性购买JAVA 基础总计0个答案 (总共需要0积分)
查看本答案会花费3个积分,您目前总共有点积分。查看相同答案不会花费额外积分。 积分增加办法 或者一次性购买JAVA 基础总计0个答案 (总共需要0积分)
账号未激活 账号未激活,功能受限。 请点击激活
public class Fish extends Animal implements Pet{ private String name; protected Fish() { super(0); } @Override public void eat() { System.out.println("Fish is eating"); } public void walk(){ System.out.println("swimming"); } @Override public void setName(String name) { // TODO Auto-generated method stub this.name = name; } @Override public String getName() { // TODO Auto-generated method stub return this.name; } @Override public void play() { // TODO Auto-generated method stub System.out.println("playing"); } }


HOW2J公众号,关注后实时获知布最新的教程和优惠活动,谢谢。


问答区域    
2019-02-24 请指正
被蚕食的鱼



1,11,15行显示错误??
1public class Cat extends Animal implements Pet{
2  private String name;
3   public Cat(String name) {
4    	super(4);
5    	this.name=name;
6   }
7  public Cat() {
8  	this("");
9    }
10    @Override
11    public void setName(String name) {
12    	this.name=name;
13    }
14    @Override
15    public String getName() {
16    	return name;
17    }
18    @Override
19    public void play() {
20    	System.out.println("猫在玩耍");
21    }
22    public void eat() {
23    	System.out.println("猫在吃东西");
24    }

}

							


1 个答案

yxmaizkm 答案时间:2019-03-10
动物输出 吃肉 用8只脚走路



回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2019-02-01 人好像越来越少了
嘿起风了



冲冲冲
public abstract class Animal {
	protected int legs;
	public Animal() {

	}
	protected Animal(int legs) {
		this.legs = legs;
	}

	abstract void eat();

	public void walk() {
		System.out.println("使用" + legs + "条腿走路");
	}

	public static void main(String[] args) {
		Spider spider = new Spider(8);
		//System.out.println(spider.name);
		//spider.eat();
		spider.walk();
		spider.eat();
		Cat cat = new Cat(4);
		cat.setName("啊呜");
		cat.getName();
		//cat.play();
		cat.walk();
		Fish fish = new Fish();
		fish.setName("游啊游");
		fish.getName();
		fish.walk();
	}
}

class Spider extends Animal {
	public Spider(int legs) {
		super(8);
	}

	public void eat() {
		System.out.println("蜘蛛吃东西");
	}
}

class Cat extends Animal implements Pet {
	private String name;

	public Cat() {

	}

	public Cat(int legs) {
		super(4);
	}

	public void eat() {
		System.out.println("猫吃东西");
	}

	public String getName() {
		System.out.println("宠物名字是" + name);
		return name;
	}

	public void setName(String name) {
		System.out.println("取名为" + name);
		this.name = name;
	}

	public void play() {
		System.out.println("猫在玩耍");
	}
}

class Fish extends Animal implements Pet {
	private String name;

	public Fish() {

	}

	public String getName() {
		System.out.println("宠物名字是" + name);
		return name;
	}

	public void setName(String name) {
		System.out.println("取名为" + name);
		this.name = name;
	}

	public void play() {
		System.out.println("鱼在游泳");
	}

	public void walk() {
		System.out.println("鱼没腿,光游泳");
	}

	public void eat() {
		System.out.println("鱼吃东西");
	}

}

							


2 个答案

yxmaizkm 答案时间:2019-03-10
最终的

Lin333 答案时间:2019-02-20
动物



回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2019-01-13 作业参考
2019-01-02 还行!
2018-12-09 综合训练!
2018-10-10 小白提问:是不是在继承父类和实现接口的时候要写上父类和接口的所有的方法才能运行??
2018-09-30 接口与继承综合练习作业
2018-09-30 接口与继承综合练习作业
2018-09-30 接口与继承综合练习作业
2018-09-30 接口与继承综合练习作业
2018-09-30 接口与继承综合练习作业
2018-09-30 接口与继承综合练习作业
2018-09-30 接口与继承综合练习作业
2018-09-30 接口与继承综合练习作业
2018-09-30 接口与继承综合练习作业
2018-09-30 接口与继承综合练习作业
2018-09-30 接口与继承综合练习作业
2018-09-30 接口与继承综合练习作业
2018-09-06 请问重写方法时@Override可以不写吗
2018-08-29 按在地上摩擦~
2018-08-28 这次作业有点多,好好理解~
2018-08-28 这次作业有点多,需要好好敲一敲.
2018-08-27 交作业
2018-08-27 交个作业
2018-08-27 交个作业
2018-08-27 本例中的Cat类中构造函数的设置
2018-08-20 交作业
2018-07-28 构造方法和构造器有什么区别
2018-05-29 关于实现接口的类中属性的设置
2018-05-06 练习
2018-03-28 报错了。。。
2018-01-29 Cat 中关于this.name的问题
2018-01-29 Cat 中关于this.name的问题
2017-11-23 求练习题答案
2017-11-10 super(8);和super.legs=8:有区别吗????
2017-09-08 super和this是不是不能同时使用啊?
2017-08-21 这个综合练习主要表达什么意思呢
2017-08-18 Spider 那個函數裏爲什麽沒有形參?
2017-03-26 this("") 的具体意义
2017-01-18 Fish和Cat的get方法里
2016-12-31 错别字
2016-08-20 错别字
2016-08-01 UML 使用的是什么软件
2016-06-05 怎么没有输出
2016-06-03 fish的getName里的返回为什么要加this




提问之前请登陆
提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢
关于 JAVA 基础-接口与继承-综合练习 的提问

尽量提供截图代码异常信息,有助于分析和解决问题。 也可进本站QQ群交流: 984886441
提问尽量提供完整的代码,环境描述,越是有利于问题的重现,您的问题越能更快得到解答。
对教程中代码有疑问,请提供是哪个步骤,哪一行有疑问,这样便于快速定位问题,提高问题得到解答的速度
在已经存在的几千个提问里,有相当大的比例,是因为使用了和站长不同版本的开发环境导致的,比如 jdk, eclpise, idea, mysql,tomcat 等等软件的版本不一致。
请使用和站长一样的版本,可以节约自己大量的学习时间。 站长把教学中用的软件版本整理了,都统一放在了这里, 方便大家下载: http://how2j.cn/k/helloworld/helloworld-version/1718.html

上传截图