天天看點

Java基礎-day11-接口;多态案例練習個人完成-筆記本電腦案例

Java基礎-day11-接口&多态案例練習

題目要求1(多态):

定義家類

方法:飼養動物

動物類:

屬性:年齡、姓名

方法:吃飯、睡覺

貓類、狗類、豬類均為動物類的一種。

建立家類對象,調用家的飼養動物方法。

Java基礎-day11-接口;多态案例練習個人完成-筆記本電腦案例
Java基礎-day11-接口;多态案例練習個人完成-筆記本電腦案例
Java基礎-day11-接口;多态案例練習個人完成-筆記本電腦案例
Java基礎-day11-接口;多态案例練習個人完成-筆記本電腦案例
Java基礎-day11-接口;多态案例練習個人完成-筆記本電腦案例
Java基礎-day11-接口;多态案例練習個人完成-筆記本電腦案例

具體代碼實作:

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

複制

運作結果:

Java基礎-day11-接口;多态案例練習個人完成-筆記本電腦案例

題目要求2(接口與多态):

定義看門的功能接口:

方法:看門

家類中添加新的功能:安排寵物看家方法

假設:豬和狗具備看家的功能

建立家類對象,調用安排寵物看家的方法

家類看家的方法定義時無法為動物類,因為并不是所有的類均有看門的方法,這裡設計為狗與豬類具有看門的方法,則二者可以實作看門接口,擷取看門方法,重寫看門方法。在定義看門的方法時,定義接收看門接口的類型。則在實際調用方法時,隻要是實作了該接口的類的對象均可以傳入。

Java基礎-day11-接口;多态案例練習個人完成-筆記本電腦案例
Java基礎-day11-接口;多态案例練習個人完成-筆記本電腦案例
Java基礎-day11-接口;多态案例練習個人完成-筆記本電腦案例
Java基礎-day11-接口;多态案例練習個人完成-筆記本電腦案例
Java基礎-day11-接口;多态案例練習個人完成-筆記本電腦案例
Java基礎-day11-接口;多态案例練習個人完成-筆記本電腦案例
Java基礎-day11-接口;多态案例練習個人完成-筆記本電腦案例

具體代碼實作:

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

複制

運作結果:

Java基礎-day11-接口;多态案例練習個人完成-筆記本電腦案例

個人完成-筆記本電腦案例

案例介紹

定義USB接口(具備開啟功能、關閉功能),筆記本要使用USB裝置,即筆記本在生産時需要預留可以插入USB裝置的USB接口,即就是筆記本具備使用USB裝置的功能,但具體是什麼USB裝置,筆記本并不關心,隻要符合USB規格的裝置都可以。滑鼠和鍵盤要想能在電腦上使用,那麼滑鼠和鍵盤也必須遵守USB規範,不然滑鼠和鍵盤的生産出來無法使用

進行描述筆記本類,實作筆記本使用USB滑鼠、USB鍵盤

l USB接口,包含開啟功能、關閉功能

l 筆記本類,包含運作功能、關機功能、使用USB裝置功能

l 滑鼠類,要符合USB接口

l 鍵盤類,要符合USB接口、