在Java中,一個類可以派生出另一個類,被派生的類稱為子類,派生出子類的類稱為父類。父類中的屬性和方法可以被子類繼承和重用。使用繼承可以讓代碼更加簡潔和易于維護。子類可以擴展和修改父類的功能,也可以添加自己的特有屬性和方法。
繼承的語法
在Java中,使用關鍵字extends定義一個類的繼承關系。子類中可以訪問父類中被繼承的非私有成員變量和方法,而父類不能訪問子類的成員變量和方法。子類可以重寫父類的方法,也可以使用super關鍵字在子類中調用父類的方法。
public class ParentClass { public int publicVar = 1; protected int protectedVar = 2; private int privateVar = 3; public void publicMethod() { System.out.println("This is a public method from parent class."); } protected void protectedMethod() { System.out.println("This is a protected method from parent class."); } private void privateMethod() { System.out.println("This is a private method from parent class."); }}public class ChildClass extends ParentClass { public void childMethod() { System.out.println("This is a method in child class."); System.out.println(publicVar); System.out.println(protectedVar); publicMethod(); protectedMethod(); //privateVar和privateMethod不可訪問 } public void publicMethod() { System.out.println("This is a public method from child class."); super.publicMethod(); }}
Java繼承中的多態(tài)
多態(tài)是指同一種行為在不同的情境下具有不同的表現(xiàn)形式。在Java中,多態(tài)是通過方法的重寫和接口實現(xiàn)來實現(xiàn)的。一個子類對象可以被當做父類對象使用,同時根據(jù)實際類型的不同,調用同一個方法時會有不同的表現(xiàn)形式。
public class Animal { public void makeSound() { System.out.println("This animal makes sound."); }}public class Dog extends Animal { public void makeSound() { System.out.println("The dog barks."); }}public class Cat extends Animal { public void makeSound() { System.out.println("The cat meows."); }}public class Main { public static void main(String[] args) { Animal animal1 = new Animal(); Animal animal2 = new Dog(); Animal animal3 = new Cat(); animal1.makeSound(); animal2.makeSound(); animal3.makeSound(); }}
在這個例子中,通過方法的重寫實現(xiàn)了多態(tài)。animal2和animal3既是Animal類型,也是Dog和Cat類型,調用makeSound方法時表現(xiàn)形式不同。