Tất nhiên là không tạo được rồi. Ví dụ mình có 1 abstract class như sau:
abstract class Fruit
{
private int numberOfFruit;
public int getNumberOfFruit()
{
return this.numberOfFruit;
}
}
Đoạn code dưới đây sẽ bị lỗi
public Fruit createObject()
{
Fruit myFruit = new Fruit();
return myFruit;
}
Nhưng nếu ta dùng tính kế thừa, nói cụ thể là áp dụng Abstract Factory Pattern như sau:
class Banana : Fruit
{
int weight;
public Banana(int weight)
{
this.weight = weight;
}
}
Thì đoạn code này sẽ không bị lỗi:
public Fruit createBanana
{
Fruit banana = new Banana(15);
return banana;
}
Lí do chạy được là vì polymorphism. Mình hiểu vậy có đúng không?