本视频是解读性视频,所以希望您已经看过了本知识点的内容,并且编写了相应的代码之后,带着疑问来观看,这样收获才多。 不建议一开始就观看视频
![]() 13分20秒 本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器。 如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)。 chrome 的 视频下载插件会影响播放,如 IDM 等,请关闭或者切换其他浏览器 步骤 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类
UML-Unified Module Language
统一建模语言,可以很方便的用于描述类的属性,方法,以及类和类之间的关系
带箭头的实线,表示 Spider,Cat, Fish都继承于Animal这个父类.
注: 模糊是表示,此时不需要关注模糊的那部分内容。 请不要再发图片是模糊的纠正信息了,站长特意这么做的。。。
表示 Fish实现了 Pet这个接口
1. 创建Animal类,它是所有动物的抽象父类。
2. 声明一个受保护的整数类型属性legs,它记录动物的腿的数目。 3. 定义一个受保护的构造器,用来初始化legs属性。 4. 声明抽象方法eat。 5. 声明具体方法walk来打印动物是如何行走的(包括腿的数目)。
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
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 + " 条腿走路"); } }
1. Spider继承Animal类。
2. 定义默认构造器,它调用父类构造器来指明所有蜘蛛都是8条腿。 3. 实现eat方法
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
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); } }
根据UML类创建pet(宠物)接口
1. 提供getName() 返回该宠物的名字 2. 提供setName(String name) 为该宠物命名 3. 提供 play()方法
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
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(); }
1. 该类必须包含String属性来存宠物的名字。
2. 定义一个构造器,它使用String参数指定猫的名字;该构造器必须调用超类构造器来指明所有的猫都是四条腿。 3. 另定义一个无参的构造器。该构造器调用前一个构造器(用this关键字)并传递一个空字符串作为参数 4. 实现Pet接口方法。 5. 实现eat方法。
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
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");
}
}
1. 创建Fish类,它继承Animal类
2. 重写Animal的walk方法以表明鱼不能走且没有腿。 3. 实现Pet接口 4. 无参构造方法 5. 提供一个private 的name属性
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
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公众号,关注后实时获知最新的教程和优惠活动,谢谢。
![]()
问答区域
2023-08-16
大家看看哪里有问题吗
1 个答案
RobertLewandowski9 跳转到问题位置 答案时间:2023-09-22 public abstract class Animal {
public String name;
protected int legs;
public abstract void eat();
protected void setLegs(int legs){
this.legs=legs;
}
public void walk()
{
System.out.println(this.name+"这个动物用"+this.legs+"条腿走路");
}
}
class rabbit extends Animal{
public rabbit(String name,int legs)
{
this.name=name;
this.legs=legs;
}
@Override
public void eat() {
System.out.println(name+"吃草");
}
public static void main(String[] a)
{
rabbit r=new rabbit("兔子",4);
r.walk();
r.eat();
}
}
回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
2023-04-15
Animal-Spider-Pet-Cat-Fish
1 个答案
tiang 跳转到问题位置 答案时间:2023-06-05 Animal类
public abstract class Animal {
protected int legs;
protected Animal(int legs) {
this.legs = legs;
}
public abstract void eat();
public void walk(){
switch (legs){
case 0:
System.out.println("没有腿的在地上爬");
break;
case 2:
System.out.println("两条腿的在地上走");
break;
case 4:
System.out.println("四条腿的在地上跑");
break;
case 8:
System.out.println("八条腿主打就是个吓人走路");
break;
}
}
public Animal() {
}
}
Spider类
public class Spider extends Animal{
@Override
public void eat() {
System.out.println("蜘蛛吃蚊子");
}
public Spider() {
super.legs=8;
}
}
Pet接口
public interface Pet {
String getName();
void setName(String name);
void play();
}
Cat类
public class Cat extends Animal implements Pet {
String name;
@Override
public String getName() {
return name;
}
@Override
public void setName(String name) {
this.name=name;
}
@Override
public void play() {
System.out.println(name+"想和你一起玩");
}
@Override
public void eat() {
System.out.println(name+":饿饿");
}
public Cat(String name) {
super.legs=4;
this.name = name;
}
}
Fish类
public class Fish extends Animal implements Pet{
@Override
public void eat() {
}
@Override
public String getName() {
return null;
}
@Override
public void setName(String name) {
}
@Override
public void play() {
}
@Override
public void walk() {
System.out.println("鱼不能走路,而且没有腿");
}
public Fish() {
}
}
回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
2022-10-22
最终答案
2022-01-20
Animal类里应该增加一个属性:name的,这是所有动物都有的属性。
2021-10-12
fish类里protected
提问太多,页面渲染太慢,为了加快渲染速度,本页最多只显示几条提问。还有 52 条以前的提问,请 点击查看
提问之前请登陆
提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢
|