將類的內部細節隱藏,僅透過公開方法存取。
private int age;public int getAge() { return age; } public void setAge(int age) { if (age>0) this.age=age; }子類取得父類非私有成員,並可擴充或覆寫。
class Sub extends Base(類繼承類)。class Impl implements Interface。同一引用型別,指向不同實例時表現不同行為。
abstract class Animal {
private String name;
public Animal(String name) { this.name = name; }
public String getName() { return name; }
public abstract void sound(); // 多態:抽象方法
}
class Dog extends Animal {
public Dog(String name) { super(name); }
@Override public void sound() { System.out.println(getName() + ": Wang!"); }
}
class Cat extends Animal {
public Cat(String name) { super(name); }
@Override public void sound() { System.out.println(getName() + ": Miao!"); }
}
public class Test {
public static void main(String[] args) {
Animal a1 = new Dog("Lucky");
Animal a2 = new Cat("Kitty");
a1.sound(); // Lucky: Wang!
a2.sound(); // Kitty: Miao!
}
}
super(...) 初始化父類狀態。