在Java中,接口和類是兩種不同的概念。接口是Java中一種特殊的抽象類,只包含抽象方法和常量,不能有實例變量和構造函數。類則是Java中一種普通的封裝了數據和行為的對象,可以被實例化成為對象。
public interface MyInterface { public void doSomething(); //抽象方法 public static final int CONSTANT_VALUE = 100; //常量 }
接口中定義了抽象方法和常量的聲明,但是沒有其具體的實現,其具體實現由實現該接口的類提供。實現接口的類必須實現接口中聲明的所有方法。接口可以被多重繼承,可以被子接口繼承。
class MyClass implements MyInterface { public void doSomething() { System.out.println("MyClass doSomething"); } } class MySubClass extends MyClass implements MyOtherInterface { //實現MyInterface中未實現的方法 public void doSomethingElse() { System.out.println("MySubClass doSomethingElse"); } }
類則通過屬性(實例變量)和方法來表示該類的行為和數據。類可以繼承其他類,從而在原基礎上添加或修改行為和數據。
public class Person { private String name; public Person(String name) { this.name = name; } public String getName() { return name; } public void sayHello() { System.out.println("Hello, I am " + name); } } public class Student extends Person { private String schoolName; public Student(String name, String schoolName) { super(name); //調用父類構造函數 this.schoolName = schoolName; } public void sayHello() { System.out.println("Hello, I am " + getName() + " from " + schoolName); } }
類可以被繼承和擴展,通過繼承和擴展可以更好地實現代碼重用和多態性。接口則通過實現來實現代碼重用和多態性。