Java的抽象类:猫狗案例
猫狗案例:从抽象到具体
狗或者猫:
成员变量:姓名,年龄
构造方法:无参,带参
成员方法:eat(猫吃鱼/狗吃肉)
因为有共性的内容,所以就提取一个父类,动物。
但是又由于吃饭的内容不一样,所以吃饭的方法是抽象的,
而方法是抽象的类,累就必须定义为抽象类。
package exercise;
abstract class Animal11{
//姓名
private String name;
//年龄
private int age;
public Animal11(){}
public Animal11(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();
}
class Dog11 extends Animal11{
public Dog11(){}
public Dog11(String name,int age){
super(name,age);
}
public void eat(){
System.out.println("狗吃肉");
}
}
class Cat11 extends Animal11{
public Cat11() {}
public Cat11(String name,int age){
super(name,age);
}
public void eat(){
System.out.println("猫吃鱼");
}
}
//测试类
class AbstractTest1 {
public static void main(String[] args) {
//方式一:
Dog11 d = new Dog11();
d.setname("藏獒");
d.setAge(3);
System.out.println(d.getName()+"----"+d.getAge());
d.eat();
Dog11 d2 = new Dog11("藏獒",3);
System.out.println(d2.getName()+"-----"+d2.getAge());
d2.eat();
System.out.println("-------------");
//方式二:多态
Animal11 a = new Dog11();
a.setname("藏獒");
a.setAge(3);
System.out.println(d2.getName()+"----"+d2.getAge());
a.eat();
Animal11 a2 = new Dog11("藏獒",3);
System.out.println(a.getName()+"----"+a.getAge());
a.eat();
System.out.println("-------------");
//方式一:
Cat11 c = new Cat11();
c.setname("汤姆");
c.setAge(5);
System.out.println(c.getName()+"----"+c.getAge());
c.eat();
Cat11 c2 = new Cat11("汤姆",5);
System.out.println(c2.getName()+"-----"+c2.getAge());
c2.eat();
System.out.println("-------------");
//方式二:多态
Animal11 aa = new Cat11();
aa.setname("汤姆");
aa.setAge(5);
System.out.println(aa.getName()+"----"+aa.getAge());
aa.eat();
Animal11 aa2 = new Cat11("汤姆",5);
System.out.println(aa2.getName()+"----"+aa2.getAge());
aa2.eat();
}
}
运行结果:
Java的抽象类:猫狗案例相关推荐
- 抽象类与接口的典型应用:猫狗案例,加入调高的额外功能
/* 抽象类与接口应用:猫狗案例,加入调高的额外功能 分析:从具体到抽象 猫: 姓名,年龄 吃饭.睡觉 狗: 姓名,年龄 吃饭.睡觉 由于有共性功能,所以我们抽 ...
- java多态猫狗吃骨头_javaSE学习(6):面向对象:多态的两个经典案例(猫狗案例和南北方人案例)...
1.猫狗多态案例 /* 2019年5月19日9点48 @author 潇雷 猫狗案例多态版: */ class Animal{ public void eat(){ System.out.printl ...
- 面向对象_猫狗案例加入跳高功能代码实现
/*猫狗案例,加入跳高的额外功能分析:从具体到抽象猫:姓名.年龄 吃饭.睡觉狗:姓名.年龄吃饭.睡觉由于有共性功能,所以,我们抽取一个父类:动物类:姓名.年龄吃饭();睡觉(){}猫:继承自动物类狗: ...
- 接口练习:猫狗案例扩展跳高功能
在"抽象类练习1:猫狗案例"的基础上,猫狗案例加入额外功能:跳高jump() 注意分析:是有的猫会跳高,有的狗会跳高 所以定义一个跳高接口.再定义两个类:跳高猫,继承猫,实现猫的跳 ...
- 面向对象_猫狗案例加入跳高功能分析
/*猫狗案例,加入跳高的额外功能分析:从具体到抽象猫:姓名.年龄 吃饭.睡觉狗:姓名.年龄吃饭.睡觉由于有共性功能,所以,我们抽取一个父类:动物类:姓名.年龄吃饭();睡觉(){}猫:继承自动物类狗: ...
- java毕业设计流浪猫狗救助网站源码+lw文档+mybatis+系统+mysql数据库+调试
java毕业设计流浪猫狗救助网站源码+lw文档+mybatis+系统+mysql数据库+调试 java毕业设计流浪猫狗救助网站源码+lw文档+mybatis+系统+mysql数据库+调试 本源码技术栈 ...
- 面向对象_猫狗案例分析
/*猫狗案例:先找到具体事物,然后发现具体事物有共性,才提取一个父类猫:成员变量:姓名,年龄,颜色构造方法:无参,带参成员方法:getXxx()/setXxx()eat()playGame()狗:成员 ...
- 面向对象之继承,抽象,接口的案例(刘意老师的猫狗案例)
猫狗案例,加入跳高的额外功能 分析:从具体到抽象 猫: 姓名,年龄 吃饭睡觉 狗: 姓名,年龄 吃饭睡觉 由于有共性功能.所以我们抽取出一个父类: 动物: 姓名,年龄 吃饭(); 睡觉(){} 猫:继 ...
- 猫狗案例加入跳高功能分析及代码实现
猫狗案例加入跳高功能分析及代码实现 class Test01_Animal {public static void main(String[] args) {Cat c = new Cat(" ...
最新文章
- 创建程序集时元数据失败 -- 拒绝访问_kubectl 创建 Pod 背后到底发生了什么?
- vissim跟驰模型_VISSIM是什么工具?你对VISSIM了解多少?
- python写文件读文件-Python文件读写
- 多线程并发:每个开发人员都应了解的内容
- Android自带的emoji表情的使用
- leetcode 764. Largest Plus Sign | 764. 最大加号标志(Java)
- eclipse不能调试运行Android程序问题的解决办法
- 我有单片机,你有酒吗?
- avue中怎样隐藏新增和编辑的按钮
- resteasy_RESTEasy教程第2部分:Spring集成
- 使用MongoDB进行乐观锁定重试
- 纯新手DSP编程--5.29--基于CCS的DSP片级支持库CSL
- DVB vs. SVB+Shader Instancing
- 0538-实战将lnmp服务中的上传目录独立分离到nfs服务器
- error: ‘VPX_IMG_FMT_RGB32’ undeclared (first use in this function); did you mean ‘VPX_IMG_FMT_NV12’?
- Linux编译安装cmake源码
- Win10 使用 Virtual Box 安装 Ubuntu 虚拟机
- 51视频编辑压缩官网
- 2020的考研总结和2021的规划
- teamviewer Android 8,利用TeamViewer控制设备