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接口、