Java分别采用继承、多态、抽象类、接口实现猫和狗的入门案例
目录
- 采用继承的思想实现猫和狗的案例
- 采用多态的思想实现猫和狗的案例
- 采用抽象类的思想实现猫和狗的案例
- 采用接口的思想实现猫和狗的案例
采用继承的思想实现猫和狗的案例
分析:
①猫: 成员变量:姓名,年龄 构造方法:无参,带参 成员方法: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分别采用继承、多态、抽象类、接口实现猫和狗的入门案例相关推荐
- day 12 2021 3 11从不同继承 多态 抽象类分别写猫与狗理解程序
继承方法版的猫与狗 main package com.wang.API.DogAndCat;public class AnimalDemo {public static void main(Strin ...
- 继承 多态 抽象类 接口
面向对象编程 包 继承 组合 多态 抽象类 接口 包 包(package)是组织类的一种方式. 使用包的主要目的是保证类的唯一性. java中已经提供给我们很多现成的类供我们选择,例如可以使用 imp ...
- java自学 part2 数组 类和对象 包 继承 多态 抽象类 接口
数组:arr 获取数组的长度:arr.length 数组转字符串: Arrays.toString(arr) 数组的拷贝: Arrays.copyOf(arr,arr.length) 数组的排序:Ar ...
- 第二十八节:Java基础-进阶继承,抽象类,接口
前言 Java基础 - 进阶继承,抽象类,接口 进阶继承 class Stu {int age = 1; } class Stuo extends Stu {int agee = 2; } class ...
- day09 多态抽象类接口
多态抽象类接口 1:final关键字可以干什么?有什么特点? 2:final关键字的面试题? 3:多态是什么,前提是什么? 4:多态中成员访问的特点? 5:多态的好处及弊端?如何解决多态的弊端? 6: ...
- 初始Java Java SE 包,继承,组合,多态,抽象类,接口
目录 包 1.静态导入 2.将类放到包中 3.包的访问权限控制 继承 基本语法: 注意事项: protected 关键字 final 关键字 组合 多态 向上转型: 动态绑定 方法重写 重写的规则 : ...
- Java编程基础10——面向对象_多态抽象类接口
1.多态的概述及其成员访问特点代码体现 A:多态(polymorphic)概述 事物存在的多种形态 B:多态前提- 1.要有继承关系 2.要有方法重写 3.要有父类引用指向子类对象. C:多态中的成员 ...
- java 多态 接口_从零开始的Java日常: 多态,抽象类,接口
欢迎关注微博:@小白程序员的日常 欢迎关注微博超话:#小白程序员的日常# 本人目前在自学java,会不间断更新java知识 同为小白或者有大佬可以一起探讨一下 一.多态 1.什么是多态 同一个对象,在 ...
- java ee2019 11 5关于多态 抽象类 接口
1 猫狗案例 多态版(继承版) class Animal{//成员方法private String name ; private int age ;//无参构造public Animal(){}//有 ...
最新文章
- 向下钻取按钮位置设置
- mysql timdir_MySQL备份之mysqlhotcopy与注意事项
- Spring Cloud Stream 体系及原理介绍
- 基于plotly数据可视化_如何使用Plotly进行数据可视化
- ELK 分析 nginx access 日志
- Poi操作Excel
- VC6.0 Raising Error spawning cl.exe solution
- 面试题之序列化与反序列化
- 药品研发的项目化管理
- java2wsdl_Java2WSDL之java实现
- aac怎么转化为mp3格式?
- Vue + Spring Boot 项目实战(十四):用户认证方案与完善的访问拦截
- youtube批量采集-低成本解决方案-2
- 文本框固定任意一顶点后,拖动相对点任意旋转缩放,计算缩放后顶点坐标
- 渗透项目(五):W1R3S
- 开源一个简单的RTS游戏(Unity)
- css制作等腰三角形
- CGLIB对类做动态代理时,无法拦截static修饰的方法和final修饰的方法
- C++ Primer Plus 第六版(中文版)第十一章(重置版)编程练习答案
- 华为充电协议_国内 | 特来电与华为签订全面合作协议,致力打造智能充电网络...