猫狗案例:从抽象到具体

狗或者猫:

成员变量:姓名,年龄

构造方法:无参,带参

成员方法: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的抽象类:猫狗案例相关推荐

  1. 抽象类与接口的典型应用:猫狗案例,加入调高的额外功能

    /*   抽象类与接口应用:猫狗案例,加入调高的额外功能     分析:从具体到抽象   猫:   姓名,年龄   吃饭.睡觉   狗:   姓名,年龄   吃饭.睡觉   由于有共性功能,所以我们抽 ...

  2. java多态猫狗吃骨头_javaSE学习(6):面向对象:多态的两个经典案例(猫狗案例和南北方人案例)...

    1.猫狗多态案例 /* 2019年5月19日9点48 @author 潇雷 猫狗案例多态版: */ class Animal{ public void eat(){ System.out.printl ...

  3. 面向对象_猫狗案例加入跳高功能代码实现

    /*猫狗案例,加入跳高的额外功能分析:从具体到抽象猫:姓名.年龄 吃饭.睡觉狗:姓名.年龄吃饭.睡觉由于有共性功能,所以,我们抽取一个父类:动物类:姓名.年龄吃饭();睡觉(){}猫:继承自动物类狗: ...

  4. 接口练习:猫狗案例扩展跳高功能

    在"抽象类练习1:猫狗案例"的基础上,猫狗案例加入额外功能:跳高jump() 注意分析:是有的猫会跳高,有的狗会跳高 所以定义一个跳高接口.再定义两个类:跳高猫,继承猫,实现猫的跳 ...

  5. 面向对象_猫狗案例加入跳高功能分析

    /*猫狗案例,加入跳高的额外功能分析:从具体到抽象猫:姓名.年龄 吃饭.睡觉狗:姓名.年龄吃饭.睡觉由于有共性功能,所以,我们抽取一个父类:动物类:姓名.年龄吃饭();睡觉(){}猫:继承自动物类狗: ...

  6. java毕业设计流浪猫狗救助网站源码+lw文档+mybatis+系统+mysql数据库+调试

    java毕业设计流浪猫狗救助网站源码+lw文档+mybatis+系统+mysql数据库+调试 java毕业设计流浪猫狗救助网站源码+lw文档+mybatis+系统+mysql数据库+调试 本源码技术栈 ...

  7. 面向对象_猫狗案例分析

    /*猫狗案例:先找到具体事物,然后发现具体事物有共性,才提取一个父类猫:成员变量:姓名,年龄,颜色构造方法:无参,带参成员方法:getXxx()/setXxx()eat()playGame()狗:成员 ...

  8. 面向对象之继承,抽象,接口的案例(刘意老师的猫狗案例)

    猫狗案例,加入跳高的额外功能 分析:从具体到抽象 猫: 姓名,年龄 吃饭睡觉 狗: 姓名,年龄 吃饭睡觉 由于有共性功能.所以我们抽取出一个父类: 动物: 姓名,年龄 吃饭(); 睡觉(){} 猫:继 ...

  9. 猫狗案例加入跳高功能分析及代码实现

    猫狗案例加入跳高功能分析及代码实现 class Test01_Animal {public static void main(String[] args) {Cat c = new Cat(" ...

最新文章

  1. 创建程序集时元数据失败 -- 拒绝访问_kubectl 创建 Pod 背后到底发生了什么?
  2. vissim跟驰模型_VISSIM是什么工具?你对VISSIM了解多少?
  3. python写文件读文件-Python文件读写
  4. 多线程并发:每个开发人员都应了解的内容
  5. Android自带的emoji表情的使用
  6. leetcode 764. Largest Plus Sign | 764. 最大加号标志(Java)
  7. eclipse不能调试运行Android程序问题的解决办法
  8. 我有单片机,你有酒吗?
  9. avue中怎样隐藏新增和编辑的按钮
  10. resteasy_RESTEasy教程第2部分:Spring集成
  11. 使用MongoDB进行乐观锁定重试
  12. 纯新手DSP编程--5.29--基于CCS的DSP片级支持库CSL
  13. DVB vs. SVB+Shader Instancing
  14. 0538-实战将lnmp服务中的上传目录独立分离到nfs服务器
  15. error: ‘VPX_IMG_FMT_RGB32’ undeclared (first use in this function); did you mean ‘VPX_IMG_FMT_NV12’?
  16. Linux编译安装cmake源码
  17. Win10 使用 Virtual Box 安装 Ubuntu 虚拟机
  18. 51视频编辑压缩官网
  19. 2020的考研总结和2021的规划
  20. teamviewer Android 8,利用TeamViewer控制设备

热门文章

  1. 星型模型和雪花模型 (数据仓库模型)
  2. 解决uefi模式安装Linux无引导问题
  3. html不传递权重,【信阳seo】这6种不传递权重的链接你知道吗?
  4. U-Mail邮件服务器玩转Pushmail
  5. 我的24H(外企工作日/周末)
  6. Google C++ 风格指南内容整理
  7. ABAP选择结构自己做的练习题
  8. React - children props 与 render props
  9. Pytorch实现CNN模型的迁移学习——蜜蜂和蚂蚁图片分类项目
  10. php做万年历思路,使用PHP制作一个简单的万年历