Java基础-day11-接口;多态案例练习
时间:2022-05-04
本文章向大家介绍Java基础-day11-接口;多态案例练习,主要内容包括个人完成-笔记本电脑案例、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
题目要求1(多态):
定义家类
方法:饲养动物
动物类:
属性:年龄、姓名
方法:吃饭、睡觉
猫类、狗类、猪类均为动物类的一种。
创建家类对象,调用家的饲养动物方法。
具体代码实现:
package StudentJavaSEday11;
/**
* 动物类
* @author 奋斗蒙
*
*/
public abstract class Animal {
private String name;
private int age;
public abstract void eat();
public abstract void sleep();
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;
}
}
package StudentJavaSEday11;
/**
* 猫类 继承动物类 并有自己的特定功能
*
* @author 奋斗蒙
*
*/
public class Cat extends Animal {
@Override
public void eat() {
System.out.println("猫吃鱼");
}
@Override
public void sleep() {
System.out.println("猫躺着睡");
}
public void catchMouse() {
System.out.println("猫抓老鼠");
}
}
package StudentJavaSEday11;
/**
* 狗类 继承动物类 没有特定功能
* @author 奋斗蒙
*
*/
public class Dog extends Animal {
@Override
public void eat() {
System.out.println("狗吃肉");
}
@Override
public void sleep() {
System.out.println("趴着睡");
}
}
package StudentJavaSEday11;
/**
* 猪类 继承动物类 没有特定功能
* @author 奋斗蒙
*
*/
public class Pig extends Animal {
@Override
public void eat() {
System.out.println("猪什么都吃");
}
@Override
public void sleep() {
System.out.println("猪吃完了就睡");
}
}
package StudentJavaSEday11;
/**
* 家类 宠物买到家 喂它吃饭
* @author 奋斗蒙
*
*/
public class Home {
// 饲养动物的方法
public void feedAnimal(Animal a) {
a.eat();
}
}
package StudentJavaSEday11;
/**
* 测试
* @author 奋斗蒙
*
*/
public class Test {
public static void main(String[] args) {
Home home = new Home();
//多态
Animal a = new Dog();
Cat c = new Cat();
Pig p = new Pig();
//调用家的饲养动物方法
home.feedAnimal(a);
home.feedAnimal(c);
home.feedAnimal(p);
}
}
运行结果:
题目要求2(接口与多态):
定义看门的功能接口:
方法:看门
家类中添加新的功能:安排宠物看家方法
假设:猪和狗具备看家的功能
创建家类对象,调用安排宠物看家的方法
家类看家的方法定义时无法为动物类,因为并不是所有的类均有看门的方法,这里设计为狗与猪类具有看门的方法,则二者可以实现看门接口,获取看门方法,重写看门方法。在定义看门的方法时,定义接收看门接口的类型。则在实际调用方法时,只要是实现了该接口的类的对象均可以传入。
具体代码实现:
package StudentJavaSEday11;
/**
* 动物类
* @author 奋斗蒙
*
*/
public abstract class Animal {
private String name;
private int age;
public abstract void eat();
public abstract void sleep();
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;
}
}
package StudentJavaSEday11;
/**
* 猫类 继承动物类 并有自己的特定功能
*
* @author 奋斗蒙
*
*/
public class Cat extends Animal {
@Override
public void eat() {
System.out.println("猫吃鱼");
}
@Override
public void sleep() {
System.out.println("猫躺着睡");
}
public void catchMouse() {
System.out.println("猫抓老鼠");
}
}
package StudentJavaSEday11;
public interface LookDoor {
// 定义看门接口
public abstract void LookDoor();
}
package StudentJavaSEday11;
/**
* 狗类 继承动物类 没有特定功能
* @author 奋斗蒙
*
*/
public class Dog extends Animal implements LookDoor {
@Override
public void eat() {
System.out.println("狗吃肉");
}
@Override
public void sleep() {
System.out.println("趴着睡");
}
@Override
public void LookDoor() {
System.out.println("狗咬人,看谁不爽就一口");
}
}
package StudentJavaSEday11;
/**
* 猪类 继承动物类 没有特定功能
*
* @author 奋斗蒙
*
*/
public class Pig extends Animal implements LookDoor {
@Override
public void eat() {
System.out.println("猪什么都吃");
}
@Override
public void sleep() {
System.out.println("猪吃完了就睡");
}
@Override
public void LookDoor() {
System.out.println("猪拱人,哼哼哼");
}
}
package StudentJavaSEday11;
/**
* 家类 宠物买到家 喂它吃饭
*
* @author 奋斗蒙
*
*/
public class Home {
// 饲养动物的方法
public void feedAnimal(Animal a) {
a.eat();
}
// 看门方法
public void LookDoor(LookDoor lk) {
lk.LookDoor();
}
}
package StudentJavaSEday11;
/**
* 测试
* @author 奋斗蒙
*
*/
public class Test {
public static void main(String[] args) {
Home home = new Home();
//多态
Animal a = new Dog();
Cat c = new Cat();
Pig p = new Pig();
Dog d = new Dog();
//调用家的饲养动物方法
home.feedAnimal(a);
home.feedAnimal(c);
home.feedAnimal(p);
//多态
LookDoor lk = new Dog();
LookDoor lk2 = new Pig();
//调用看门方法
home.LookDoor(lk);
home.LookDoor(lk2);
}
}
运行结果:
个人完成-笔记本电脑案例
案例介绍
定义USB接口(具备开启功能、关闭功能),笔记本要使用USB设备,即笔记本在生产时需要预留可以插入USB设备的USB接口,即就是笔记本具备使用USB设备的功能,但具体是什么USB设备,笔记本并不关心,只要符合USB规格的设备都可以。鼠标和键盘要想能在电脑上使用,那么鼠标和键盘也必须遵守USB规范,不然鼠标和键盘的生产出来无法使用
进行描述笔记本类,实现笔记本使用USB鼠标、USB键盘
l USB接口,包含开启功能、关闭功能
l 笔记本类,包含运行功能、关机功能、使用USB设备功能
l 鼠标类,要符合USB接口
l 键盘类,要符合USB接口、
- 升级 微信技术输出 时尚新门店尝鲜刷脸支付
- WSP Global品牌升级 启用3声母域名
- 一、爬虫基本原理
- python 中__setattr__, __getattr__,__getattribute__, __call__使用方法
- 量子技术与人工智能:同时进化的双生子
- TCP协议三次握手与四次挥手通俗解析
- Silverlight/aspx/ajax/mvc的UI自动化测试
- Office Open XML学习(1)-创建excel文档,并向单元格中插入字符串
- PyMC3和Theano代码构建贝叶斯深度网络,61页PPT探索贝叶斯深度学习以及实现
- 男程序员是不是都不会和女生表达交流?程序员的回答歪了
- Silverlight Telerik控件学习:主题Theme切换
- Silverlight自定义类库实现应用程序缓存
- Silverlight Telerik控件学习:TreeView数据绑定并初始化选中状态、PanelBar的Accordion效果、TabPanel、Frame基本使用
- 这或许是对小白最友好的python入门了吧——4,列表
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- PHP异常类及异常处理操作实例详解
- PHP面向对象程序设计(OOP)之方法重写(override)操作示例
- Python3与fastdfs分布式文件系统如何实现交互
- PHP判断是否微信访问的方法示例
- Pytorch损失函数nn.NLLLoss2d()用法说明
- python实现学生成绩测评系统
- Python dict的常用方法示例代码
- Scrapy模拟登录赶集网的实现代码
- opencv 图像腐蚀和图像膨胀的实现
- PHP实现微信退款的方法示例
- 基于Python和C++实现删除链表的节点
- python让函数不返回结果的方法
- PHP微商城开源代码实例
- PHP小程序支付功能完整版【基于thinkPHP】
- CodeIgniter框架实现的整合Smarty引擎DEMO示例