Java是一門面向對象的編程語言,具有繼承、多態和封裝等特性。
繼承
public class Animal { private String name; public Animal(String name) { this.name = name; } public String getName() { return name; } public void eat() { System.out.println(name + " is eating."); } } public class Cat extends Animal { public Cat(String name) { super(name); } public void mew() { System.out.println(getName() + " is mewing."); } } public static void main(String[] args) { Cat cat = new Cat("Tom"); cat.eat(); // Tom is eating. cat.mew(); // Tom is mewing. }
繼承可以讓子類繼承父類的屬性和方法。子類可以添加新的屬性和方法,也可以重寫父類的方法。在上述代碼中,Cat類繼承了Animal類,重寫了eat方法,添加了mew方法。
多態
public class Animal { public void move() { System.out.println("Animal is moving."); } } public class Cat extends Animal { public void move() { System.out.println("Cat is moving."); } } public class Dog extends Animal { public void move() { System.out.println("Dog is moving."); } } public static void main(String[] args) { Animal animal1 = new Animal(); Animal animal2 = new Cat(); Animal animal3 = new Dog(); animal1.move(); // Animal is moving. animal2.move(); // Cat is moving. animal3.move(); // Dog is moving. }
多態可以讓不同的對象調用相同的方法產生不同的結果。在上述代碼中,三個Animal類型的對象animal1、animal2、animal3分別指向了Animal、Cat、Dog類的實例,調用相同的move方法產生了不同的輸出結果。
封裝
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; } } public static void main(String[] args) { Person person = new Person("Tom", 20); System.out.println(person.getName()); // Tom System.out.println(person.getAge()); // 20 }
封裝可以保護程序中的數據,只有通過特定的方法才能訪問或修改這些數據。在上述代碼中,Person類的name和age屬性被聲明為private,只能通過getName和getAge方法獲取數據,不能直接訪問或修改。