ใช่ เราสามารถประกาศ abstract class โดยไม่มี abstract methods ใน Java ได้
- Abstract class หมายถึงการซ่อน implementation และแสดงแค่ function definition ให้ผู้ใช้
- Abstract class อาจมีทั้ง abstract methods และ non-abstract methods
- สำหรับ abstract class เราไม่สามารถสร้าง object โดยตรงได้ แต่ Indirectly เราสามารถสร้าง object โดยใช้ subclass object
- Java abstract class สามารถมี instance methods ที่ implement default behavior ได้
- Abstract class สามารถ extend ได้เพียงหนึ่งคลาสหรือหนึ่ง abstract class ในเวลาเดียวกัน
- การประกาศคลาสเป็น abstract โดยไม่มี abstract methods หมายถึงเราไม่อนุญาตให้ instantiate มันด้วยตัวมันเอง
- Abstract class ที่ใช้ใน Java บ่งชี้ว่าเราไม่สามารถสร้าง object ของคลาสโดยตรงได้
ตัวอย่าง
abstract class AbstractDemo { // Abstract class
private int i = 0;
public void display() { // non-abstract method
System.out.print("Welcome to Tutorials Point");
}
}
public class InheritedClassDemo extends AbstractDemo {
public static void main(String args[]) {
AbstractDemo demo = new InheritedClassDemo();
demo.display();
}
}
ในตัวอย่างข้างต้น เราไม่ได้กำหนด abstract method ใน AbstractDemo class คอมไพเลอร์ไม่โยน compile-time error ใดๆ
ผลลัพธ์
Welcome to Tutorials Point