Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

เราสามารถสร้างวัตถุของคลาสนามธรรมใน Java ได้หรือไม่?


ไม่ เราไม่สามารถสร้างวัตถุของคลาสนามธรรมได้ แต่เราสามารถสร้างตัวแปรอ้างอิงของคลาสนามธรรมได้ ตัวแปรอ้างอิงใช้เพื่ออ้างถึงวัตถุของคลาสที่ได้รับ (คลาสย่อยของคลาสนามธรรม)

คลาสนามธรรมหมายถึงการซ่อนการใช้งานและการแสดงนิยามฟังก์ชันให้กับผู้ใช้เรียกว่าคลาสนามธรรม คลาสนามธรรมของ Java สามารถมีเมธอดของอินสแตนซ์ที่ใช้พฤติกรรมเริ่มต้นได้ หากเราทราบข้อกำหนดและการใช้งานบางส่วน เราก็สามารถเลือกคลาสนามธรรมได้

ตัวอย่าง

abstract class Diagram {
   double dim1;
   double dim2;
   Diagram(double a, double b) {
      dim1 = a;
      dim2 = b;
   }
      // area is now an abstract method
      abstract double area();
}
class Rectangle extends Diagram {
   Rectangle(double a, double b) {
      super(a, b);
   }
   // override area for rectangle
   double area() {
      System.out.println("Inside Area for Rectangle.");
      return dim1 * dim2;
   }
}
class Triangle extends Diagram {
   Triangle(double a, double b) {
      super(a, b);
   }
   // override area for triangle
   double area() {
      System.out.println("Inside Area for Triangle.");
      return dim1 * dim2 / 2;
   }
}
public class Test {
   public static void main(String args[]) {
      // Diagram d = new Diagram(10, 10); // illegal now
      Rectangle r = new Rectangle(9, 5);
      Triangle t = new Triangle(10, 8);
      Diagram diagRef; // This is OK, no object is created
      diagRef = r;
      System.out.println("Area of Rectangle is: " + diagRef.area());
      diagRef = t;
      System.out.println("Area of Triangle is:" + diagRef.area());
   }
}

ในตัวอย่างข้างต้น เราไม่สามารถสร้างวัตถุประเภทไดอะแกรม แต่เราสามารถสร้างตัวแปรอ้างอิงประเภทไดอะแกรมได้ ที่นี่เราสร้างตัวแปรอ้างอิงประเภท Diagram และตัวแปรอ้างอิงคลาส Diagram ใช้เพื่ออ้างถึงวัตถุของคลาส Rectangle และ Triangle

ผลลัพธ์

Inside Area for Rectangle.
Area of Rectangle is: 45.0
Inside Area for Triangle.
Area of Triangle is:40.0