前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java基础-day11-接口;多态案例练习

Java基础-day11-接口;多态案例练习

作者头像
Java帮帮
发布2018-03-19 18:06:18
1.3K0
发布2018-03-19 18:06:18
举报
Java基础-day11-接口&多态案例练习

题目要求1(多态):

定义家类

方法:饲养动物

动物类:

属性:年龄、姓名

方法:吃饭、睡觉

猫类、狗类、猪类均为动物类的一种。

创建家类对象,调用家的饲养动物方法。

具体代码实现:

代码语言:javascript
复制
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(接口与多态):

定义看门的功能接口:

方法:看门

家类中添加新的功能:安排宠物看家方法

假设:猪和狗具备看家的功能

创建家类对象,调用安排宠物看家的方法

家类看家的方法定义时无法为动物类,因为并不是所有的类均有看门的方法,这里设计为狗与猪类具有看门的方法,则二者可以实现看门接口,获取看门方法,重写看门方法。在定义看门的方法时,定义接收看门接口的类型。则在实际调用方法时,只要是实现了该接口的类的对象均可以传入。

具体代码实现:

代码语言:javascript
复制
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接口、

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-06-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java帮帮 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 个人完成-笔记本电脑案例
    • 案例介绍
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档