Interface - template
Bây giờ ta có 1 khái niệm mới, là giao diện. Giao diện ra đời chính là để giải quyết đa kế thừa. Mỗi lớp trong Java chỉ có 1 lớp cha, nhưng có thể implements nhiều giao diện.
Giao diện được khai báo giống như 1 lớp, cũng có state và behavior. Nhưng state của giao diện là final còn behavior là abstract
Giả sử, ta sẽ khai báo một giao diện
12345678910publicinterfaceProduct {// hai state duoi day la final, tuc la lop implements khong duoc phep doi// gia tristaticstring maker ="My Corp";staticstring phone ="555-7767";// behavior duoi day la abstract, tuc la khong co noi dungpublicintgetPrice(intid);}
Bây giờ, ta sẽ viết một class có cài đặt (implements) giao diện này:
1234567891011publicclassShoeimplementsProduct {publicintgetPrince(intid){return(id= =1)?5:10;}publicString getMaker() {returnmaker;}}
Muốn implements nhiều giao diện, làm như sau, ví dụ class Toyota extends Car implements ActionCar, ActionMobilation
package-unit
Hãy tạo 1 thư mục có tên là Transport
Bên trong thư mục này hãy tạo 2 file là Car.java và Bicycle.java như sau
Car.java
1234567packageTransport;publicclassCar {publicString manufacturer;publicintyear;}
Bicycle.java
12345678910packageTransport;publicclassBicycle {publicintcost;publicBicycle(intcost) {this.cost = cost;}}
Như vậy là ta đã tạo ra 1 gói chứa 2 lớp là Car và Bicycle. Bây giờ ta có 1 chương trình muốn sử dụng gói này là TestProgram.java. Ta viết:
ViDuTransport.java
12345678910importTransport.*;classTestProgram {publicstaticvoidmain(String args[]) {Car myCar =newCar();myCar.manufacturer ="Toyota";Bicycle myBicycle =newBicycle(1500);}}
Lưu ý nếu trong file ViDuTransport bạn không khai báo import Transport.* thì bạn vẫn có thể khai báo tường minh như sau
Transport.Car myCar = new Transport.Car();






0 nhận xét:
Đăng nhận xét