Nhập môn Lập trình Hướng đối tượng với Java
Sani Yusuf
Lead Software Engineering Content Developer
// Lớp trừu tượng Car
abstract class Car {
// Phương thức trừu tượng drive
abstract void drive();
// Không có triển khai mã
}
// Lớp Toyota kế thừa Car
class Toyota extends Car {
}
// Lớp Tesla kế thừa Car
class Tesla extends Car {
}
// Lớp Lamborghini kế thừa Car
class Lamborghini extends Car {
}
@Override cho phép tạo triển khai tùy chỉnh cho phương thức // Lớp trừu tượng Car
abstract class Car {
// Phương thức trừu tượng drive
abstract void drive();
// Không có triển khai mã
}
class Toyota extends Car {
@Override // Từ khóa dùng để ghi đè
void drive() {
// Mã triển khai riêng cho Toyota
}
}
class Tesla extends Car {
@Override
void drive() {
// Mã triển khai riêng cho Tesla
}
}
class Lamborghini extends Car {
@Override
void drive() {
// Mã triển khai riêng cho Lamborghini
}
}
// Interface ElectricCar
interface ElectricCar {
abstract void charge();
// Không có triển khai mã
}
@Override khi triển khai phương thức từ interface
// Lớp Tesla triển khai
// interface ElectricCar
class Tesla implements ElectricCar {
// Phải triển khai phương thức charge
@Override
void charge(){
// Triển khai sạc riêng cho Tesla
// Kế thừa chọn lọc với interface
}
}
// Lớp Toyota class Toyota { void drive() { // Triển khai đầu tiên của phương thức drive }// Phương thức drive quá tải void drive(int topSpeed) { // Triển khai thứ hai của drive } }
// Lớp Honda class Honda { // Constructor thứ nhất public Honda(String color, String model) { }// Constructor thứ hai public Honda(String color, String model, String licensePlate) { } }
public class Main { public static void main( String[] args) { // Dùng constructor thứ nhất Honda hondaOne = new Honda("Red", "Accord");// Dùng constructor thứ hai Honda hondaTwo = new Honda("Red", "Civic", "FST-1977"); } }
Nhập môn Lập trình Hướng đối tượng với Java