目录

  • 采用继承的思想实现猫和狗的案例
  • 采用多态的思想实现猫和狗的案例
  • 采用抽象类的思想实现猫和狗的案例
  • 采用接口的思想实现猫和狗的案例

采用继承的思想实现猫和狗的案例

分析:
①猫: 成员变量:姓名,年龄 构造方法:无参,带参 成员方法:get/set方法,抓老鼠()
②狗: 成员变量:姓名,年龄 构造方法:无参,带参 成员方法:get/set方法,看门()
③共性: 成员变量:姓名,年龄;构造方法:无参,带参;成员方法:get/set方法
步骤:
1、定义动物类(Animal) 【成员变量:姓名,年龄】【 构造方法:无参,带参】【成员方法:get/set方法】
2、定义猫类(Cat),继承动物类 【构造方法:无参,带参】【成员方法:抓老鼠() 】
3、定义狗类(Dog),继承动物类【构造方法:无参,带参】【成员方法:看门() 】 4、定义测试类(AnimalDemo),写代码测试

动物类

public 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;}}

猫类

class Cat extends Animal{public Cat() {}public Cat(String name, int age) {super(name, age);}public void catchMouse(){System.out.println("猫抓老鼠");}
}class Dog extends Animal{public Dog() {}public Dog(String name, int age) {super(name, age);}public void lookdoor(){System.out.println("狗看门");}
}

测试类

public class AnimalDemo{public static void main(String[] args) {//创建猫类对象并进行测试Cat c1 = new Cat();c1.setName("加菲猫");c1.setAge(5);System.out.println(c1.getName() + "," + c1.getAge());c1.catchMouse();Dog c2 = new Dog("二哈狗", 6);System.out.println(c2.getName() + "," + c2.getAge());c2.lookdoor();}
}

采用多态的思想实现猫和狗的案例

动物类

public 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 void eat(){System.out.println("动物吃东西");}
}

猫类

public class Cat extends Animal {public Cat() {}public Cat(String name, int age) {super(name, age);}@Overridepublic void eat() {System.out.println("猫吃鱼");}
}

狗类

public class Dog extends Animal {public Dog() {}public Dog(String name, int age) {super(name, age);}@Overridepublic void eat() {System.out.println("狗吃骨头");}
}

测试类

public class Demo {public static void main(String[] args) {Animal cat=new Cat();cat.setName("加菲猫");cat.setAge(5);System.out.println(cat.getName() + "," + cat.getAge());cat.eat();Animal dog=new Dog();dog.setName("二哈狗");dog.setAge(4);System.out.println(dog.getName() + "," + dog.getAge());dog.eat();}
}

采用抽象类的思想实现猫和狗的案例

动物类

public abstract class Animal01 {private String name;private int age;public Animal01() {}public Animal01(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 class Cat01 extends Animal01{public Cat01() {}public Cat01(String name, int age) {super(name, age);}@Overridepublic void eat() {System.out.println("猫吃鱼");}
}

狗类

public class Dog01 extends Animal01 {public Dog01() {}public Dog01(String name, int age) {super(name, age);}@Overridepublic void eat() {System.out.println("狗吃骨头");}
}

测试类

public class Demo01 {public static void main(String[] args) {Animal01 cat=new Cat01();cat.setName("加菲猫");cat.setAge(6);System.out.println(cat.getName() + "," + cat.getAge());cat.eat();Animal01 dog=new Dog01();dog.setName("二哈狗");dog.setAge(6);System.out.println(dog.getName() + "," + dog.getAge());dog.eat();}
}

采用接口的思想实现猫和狗的案例

案例需求
对猫和狗进行训练,他们就可以跳高了,这里加入跳高功能。 请采用抽象类和接口来实现猫狗案例,并在测试类中进行测试。

动物类

public abstract class Animal02 {private String name;private int age;public Animal02() {}public Animal02(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 interface Jumpping {public abstract void jump();
}

猫类

public class Cat02 extends Animal02 implements Jumpping {public Cat02() {}public Cat02(String name, int age) {super(name, age);}@Overridepublic void eat() {System.out.println("猫吃鱼");}@Overridepublic void jump() {System.out.println("猫可以跳高");}
}

测试类

public class Demo02 {public static void main(String[] args) {//创建对象,调用方法Jumpping j = new Cat02();j.jump();System.out.println("­­­­­­­­");Animal02 a = new Cat02();a.setName("加菲猫");a.setAge(5);System.out.println(a.getName()+","+a.getAge());a.eat();((Cat02) a).jump();System.out.println("­­­­­­­­");Cat02 c = new Cat02();c.setName("加菲猫");c.setAge(5);System.out.println(c.getName()+","+c.getAge());c.eat();c.jump();}
}

Java分别采用继承、多态、抽象类、接口实现猫和狗的入门案例相关推荐

  1. day 12 2021 3 11从不同继承 多态 抽象类分别写猫与狗理解程序

    继承方法版的猫与狗 main package com.wang.API.DogAndCat;public class AnimalDemo {public static void main(Strin ...

  2. 继承 多态 抽象类 接口

    面向对象编程 包 继承 组合 多态 抽象类 接口 包 包(package)是组织类的一种方式. 使用包的主要目的是保证类的唯一性. java中已经提供给我们很多现成的类供我们选择,例如可以使用 imp ...

  3. java自学 part2 数组 类和对象 包 继承 多态 抽象类 接口

    数组:arr 获取数组的长度:arr.length 数组转字符串: Arrays.toString(arr) 数组的拷贝: Arrays.copyOf(arr,arr.length) 数组的排序:Ar ...

  4. 第二十八节:Java基础-进阶继承,抽象类,接口

    前言 Java基础 - 进阶继承,抽象类,接口 进阶继承 class Stu {int age = 1; } class Stuo extends Stu {int agee = 2; } class ...

  5. day09 多态抽象类接口

    多态抽象类接口 1:final关键字可以干什么?有什么特点? 2:final关键字的面试题? 3:多态是什么,前提是什么? 4:多态中成员访问的特点? 5:多态的好处及弊端?如何解决多态的弊端? 6: ...

  6. 初始Java Java SE 包,继承,组合,多态,抽象类,接口

    目录 包 1.静态导入 2.将类放到包中 3.包的访问权限控制 继承 基本语法: 注意事项: protected 关键字 final 关键字 组合 多态 向上转型: 动态绑定 方法重写 重写的规则 : ...

  7. Java编程基础10——面向对象_多态抽象类接口

    1.多态的概述及其成员访问特点代码体现 A:多态(polymorphic)概述 事物存在的多种形态 B:多态前提- 1.要有继承关系 2.要有方法重写 3.要有父类引用指向子类对象. C:多态中的成员 ...

  8. java 多态 接口_从零开始的Java日常: 多态,抽象类,接口

    欢迎关注微博:@小白程序员的日常 欢迎关注微博超话:#小白程序员的日常# 本人目前在自学java,会不间断更新java知识 同为小白或者有大佬可以一起探讨一下 一.多态 1.什么是多态 同一个对象,在 ...

  9. java ee2019 11 5关于多态 抽象类 接口

    1 猫狗案例 多态版(继承版) class Animal{//成员方法private String name ; private int age ;//无参构造public Animal(){}//有 ...

最新文章

  1. 向下钻取按钮位置设置
  2. mysql timdir_MySQL备份之mysqlhotcopy与注意事项
  3. Spring Cloud Stream 体系及原理介绍
  4. 基于plotly数据可视化_如何使用Plotly进行数据可视化
  5. ELK 分析 nginx access 日志
  6. Poi操作Excel
  7. VC6.0 Raising Error spawning cl.exe solution
  8. 面试题之序列化与反序列化
  9. 药品研发的项目化管理
  10. java2wsdl_Java2WSDL之java实现
  11. aac怎么转化为mp3格式?
  12. Vue + Spring Boot 项目实战(十四):用户认证方案与完善的访问拦截
  13. youtube批量采集-低成本解决方案-2
  14. 文本框固定任意一顶点后,拖动相对点任意旋转缩放,计算缩放后顶点坐标
  15. 渗透项目(五):W1R3S
  16. 开源一个简单的RTS游戏(Unity)
  17. css制作等腰三角形
  18. CGLIB对类做动态代理时,无法拦截static修饰的方法和final修饰的方法
  19. C++ Primer Plus 第六版(中文版)第十一章(重置版)编程练习答案
  20. 华为充电协议_国内 | 特来电与华为签订全面合作协议,致力打造智能充电网络...

热门文章

  1. selenium自动化测试学习4-基本控件介绍
  2. 2022年首家民营征信机构浙江同信获企业征信备案公示
  3. 金仓数据库 时间没有 时分秒 的问题
  4. 计算机实用基础,计算机常用英语单词Word总结大全44页
  5. 八问数据中台:关于数据中台你想知道的都在这里!
  6. python货币兑换_用python计算货币兑换
  7. centos7自动获取ip命令_突然断网?专业分析宽带拨号和自动获取ip哪个好?
  8. 如何解决桌面IE图标不见了?
  9. 人工智能导论课程论文:人工智能及其发展趋势
  10. Flutter 3.0框架下的小程序运行