Java繼承和接口是Java面向對象編程的兩個重要內容。Java繼承是指子類繼承父類的屬性和方法,而接口則是實現某些行為的一種規范。在本篇實驗中,我們將了解如何在Java中使用繼承和接口,并實現一些簡單的功能。
首先,我們將介紹如何創建一個簡單的類及其子類。我們創建一個Animal類,并定義它的屬性和方法:
public class Animal { String name; int age; public Animal(String name, int age) { this.name = name; this.age = age; } public void speak() { System.out.println("I am an animal."); } }
接下來,我們創建一個Dog類,繼承自Animal類:
public class Dog extends Animal { public Dog(String name, int age) { super(name, age); } public void speak() { System.out.println("I am a dog."); } public void wagTail() { System.out.println("I am wagging my tail."); } }
注意到Dog類繼承了Animal類的屬性和構造方法,并定義了自己的speak()方法和wagTail()方法。
接下來,我們介紹如何使用接口。我們創建一個Speakable接口:
public interface Speakable { void speak(); }
在這個接口中,我們定義了一個speak()方法,讓實現了這個接口的類都有speak()方法。
現在,我們將Animal類實現Speakable接口:
public class Animal implements Speakable { String name; int age; public Animal(String name, int age) { this.name = name; this.age = age; } public void speak() { System.out.println("I am an animal."); } }
現在,Animal類具有了Speakable接口的特性。同樣的,我們將Dog類實現Speakable接口:
public class Dog extends Animal implements Speakable { public Dog(String name, int age) { super(name, age); } public void speak() { System.out.println("I am a dog."); } public void wagTail() { System.out.println("I am wagging my tail."); } }
現在,Dog類也實現了Speakable接口。我們可以定義一個Animal數組,用來存放Animal類和它的子類:
Animal[] animals = new Animal[2]; animals[0] = new Animal("lion", 5); animals[1] = new Dog("puppy", 1); for (int i = 0; i< animals.length; i++) { animals[i].speak(); }
在上述代碼中,我們定義了一個含有兩個元素的Animal數組,第一個元素是Animal類的實例,第二個元素是Dog類的實例。我們遍歷該數組,分別調用其speak()方法,輸出各自的結果。
這就是Java繼承和接口的基本實驗。通過實踐,我們可以更深入地了解Java面向對象編程的重要性,以及如何在實際工作中靈活運用。