JAVA是一個面向對象的編程語言,其中繼承、封裝和多態是面向對象編程的三個基本特征。在JAVA中,繼承是指從已有類中派生出新的類,新類繼承了已有類的屬性和方法,并且可以在此基礎上進行擴展或修改。
public class Animal { String name; public Animal(String name) { this.name = name; } public void eat() { System.out.println(name + " is eating."); } } public class Dog extends Animal { public Dog(String name) { super(name); } public void bark() { System.out.println(name + " is barking."); } }
在上面的代碼中,Dog類繼承了Animal類,并擴展了一個新的方法bark。在Dog類中,我們可以使用所有Animal類中定義的屬性和方法,同時也可以在此基礎上進行擴展或修改。
封裝是指隱藏對象的實現細節,僅暴露出公共接口。在JAVA中,封裝通過訪問修飾符來實現。訪問修飾符有public、protected、default和private四種,分別代表公共、保護、默認和私有,用來控制類、屬性和方法的可見性。
public class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; } }
在上面的代碼中,name和age屬性被聲明為private,外部無法直接訪問。通過在類中提供public的get方法,外部可以通過這些方法來訪問屬性的值,而不需要知道實現細節。
多態是指一個對象可以根據不同的上下文表現出不同的行為。在JAVA中,多態通過繼承和接口實現。當一個對象具備多個形態時,我們可以使用其中任何一個形態。
public interface Shape { void draw(); } public class Circle implements Shape { @Override public void draw() { System.out.println("Drawing circle."); } } public class Rectangle implements Shape { @Override public void draw() { System.out.println("Drawing rectangle."); } } public class Main { public static void main(String[] args) { Shape shape1 = new Circle(); Shape shape2 = new Rectangle(); shape1.draw(); shape2.draw(); } }
在上面的代碼中,我們定義了一個Shape接口和兩個實現了Shape接口的類Circle和Rectangle。在Main類中,我們使用Shape類型的變量來指向Circle和Rectangle的實例,并且調用它們的draw方法。由于多態的特性,我們可以在運行時動態地確定shape1和shape2的具體類型,從而調用相應的draw方法。