面向对象之继承,抽象,接口的案例(刘意老师的猫狗案例)
猫狗案例,加入跳高的额外功能
分析:从具体到抽象
猫:
姓名,年龄
吃饭睡觉
狗:
姓名,年龄
吃饭睡觉
由于有共性功能。所以我们抽取出一个父类:
动物:
姓名,年龄
吃饭();
睡觉(){}
猫:继承自动物
狗:继承自动物
跳高的额外功能是一个新的扩展功能,所以我们要定义一个接口
跳高
部分猫:实现跳高
部分狗:实现跳高
动物:
姓名,年龄
吃饭();
睡觉(){}
猫:继承自动物
狗:继承自动物
跳高的额外功能是一个新的扩展功能,所以我们要定义一个接口跳高
部分猫:实现跳高
部分狗:实现跳高
interface Jump{public abstract void Jump();
}
abstract class Animal{private String name;private int age;public Animal() {}public Animal(String name,int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public abstract void eat();public void Sleep() {System.out.println("睡觉觉啦");}
}
class Cat extends Animal{public Cat() {}public Cat(String name,int age) {super(name,age);}public void eat() {System.out.println("猫吃鱼");}
}
class Dog extends Animal{public Dog() {}public Dog(String name,int age) {super(name,age);}public void eat() {System.out.println("狗吃肉");}
}
class JumpCat extends Cat implements Jump{public JumpCat() {}public JumpCat(String name,int age) {super(name,age);}public void Jump() {System.out.println("跳高猫");}
}
class JumpDog extends Dog implements Jump{public JumpDog() {}public JumpDog(String name,int age) {super(name,age);}public void Jump() {System.out.println("跳高狗");}
}
class InterFaceDemo2 {public static void main (String[] args) {//具体实现//猫实现JumpCat jc = new JumpCat();jc.setName("加菲");jc.setAge(11);System.out.println(jc.getName()+"-----"+jc.getAge());jc.eat();jc.Sleep();jc.Jump();}
}
运行结果(狗狗那个跟跳高猫是一样的,只是没调用):
加菲-----11
猫吃鱼
睡觉觉啦
跳高猫
面向对象之继承,抽象,接口的案例(刘意老师的猫狗案例)相关推荐
- 接口练习:猫狗案例扩展跳高功能
在"抽象类练习1:猫狗案例"的基础上,猫狗案例加入额外功能:跳高jump() 注意分析:是有的猫会跳高,有的狗会跳高 所以定义一个跳高接口.再定义两个类:跳高猫,继承猫,实现猫的跳 ...
- 面向对象_猫狗案例加入跳高功能代码实现
/*猫狗案例,加入跳高的额外功能分析:从具体到抽象猫:姓名.年龄 吃饭.睡觉狗:姓名.年龄吃饭.睡觉由于有共性功能,所以,我们抽取一个父类:动物类:姓名.年龄吃饭();睡觉(){}猫:继承自动物类狗: ...
- 面向对象_猫狗案例加入跳高功能分析
/*猫狗案例,加入跳高的额外功能分析:从具体到抽象猫:姓名.年龄 吃饭.睡觉狗:姓名.年龄吃饭.睡觉由于有共性功能,所以,我们抽取一个父类:动物类:姓名.年龄吃饭();睡觉(){}猫:继承自动物类狗: ...
- 抽象类与接口的典型应用:猫狗案例,加入调高的额外功能
/* 抽象类与接口应用:猫狗案例,加入调高的额外功能 分析:从具体到抽象 猫: 姓名,年龄 吃饭.睡觉 狗: 姓名,年龄 吃饭.睡觉 由于有共性功能,所以我们抽 ...
- java多态猫狗吃骨头_javaSE学习(6):面向对象:多态的两个经典案例(猫狗案例和南北方人案例)...
1.猫狗多态案例 /* 2019年5月19日9点48 @author 潇雷 猫狗案例多态版: */ class Animal{ public void eat(){ System.out.printl ...
- 面向对象_猫狗案例分析
/*猫狗案例:先找到具体事物,然后发现具体事物有共性,才提取一个父类猫:成员变量:姓名,年龄,颜色构造方法:无参,带参成员方法:getXxx()/setXxx()eat()playGame()狗:成员 ...
- Java的抽象类:猫狗案例
猫狗案例:从抽象到具体 狗或者猫: 成员变量:姓名,年龄 构造方法:无参,带参 成员方法:eat(猫吃鱼/狗吃肉) 因为有共性的内容,所以就提取一个父类,动物. 但是又由于吃饭的内容不一样,所以吃饭的 ...
- 猫狗案例加入跳高功能分析及代码实现
猫狗案例加入跳高功能分析及代码实现 class Test01_Animal {public static void main(String[] args) {Cat c = new Cat(" ...
- (十)Core Java 面向对象(封装,继承,多态,接口) -02 (96)
目录 : 24 ). 面向对象(聚集关系) 25 ). 面向对象(子父类中变量的特点) 26 ). 面向对象(子父类中函数的特点-覆盖) 27 ). 面向对象(子父类中构造函数的特点 ...
最新文章
- 我记录网站综合系统 -- 技术原理解析[10:PermissionChecker流程]
- 当视频恋爱 App 用上了 Serverless
- gcc undefined reference to 问题解决方法(使用库)
- CloudEngine 6800 堆叠场景下配置eth-trunk链路聚合流量负载不均衡
- PHP 几个常用的加密函数
- 网络 计算机网络预备知识
- 专注企业市场 或是网盘危机的有效出路
- php调用lstat频繁,PHP lstat()函数使用方法
- Zabbix监控解决方案
- 我得到 http 响应,但 response.getEntity().getContent() 显示空指针异常
- 黄聪:火狐firefox打开flash就卡
- 楚留香服务器维护时间,2019年06月28日官方维护公告
- rs422/rs485通信接口原理图
- 【PHP】最详细PHP从入门到精通(一)
- FreeIPA 4.7.0 服务端 部署
- apiclod 上传图片_apicloud图片上传
- a标签下载静态文件 失败-未发现文件
- 详解设置路由导航的两种方法
- 文盘Rust -- 领域交互模式如何实现
- 过完618!来看看 Node.js 如何实现秒杀系统