illustrating inheritance এবং abstract classes এর উদাহরণ
- Shape.java সব, বদ্ধ খোলা, বাঁকা, এবং সোজা পার্শ্বে ধারবিশিষ্ট আকার এর জন্য প্যারেন্ট ক্লাস (সারাংশ)।
- Curve.java একটি (সারাংশ) বাঁকা আকার (খোলা বা বন্ধ)।
- StraightEdgedShape.java সরাসরি ধার সম্বলিত একটি আকৃতি (খোলা বা বন্ধ)।
- Measurable.java পরিমাপযোগ্য এলাকায় ইন্টারফেস ডিফাইনিং ক্লাস।
- Circle.java একটি বৃত্ত যা আকার প্রসারিত করে এবং পরিমাপ প্রয়োগ করে।
- MeasureUtil.java পরিমাপযোগ্য স্থানের উপর কাজ করে।
- Polygon.java সরাসরি ধার সম্বলিত একটি বদ্ধ আকৃতি; StraightEdgedShape প্রসারিত করে এবং পরিমাপ প্রয়োগ করে।
- Rectangle.java একটি আয়তক্ষেত্র যা পরিমাপযোগ্য ইন্টারফেস ধারণ করে; বহুভুজে প্রসারিত করে।
- MeasureTest.java উদাহরণ এর জন্য ড্রাইভার।
Shape.java
/** The parent class for all closed, open, curved, and * straight-edged shapes. * public abstract class Shape { protected int x, y; public int getX() { return(x); } public void setX(int x) { this.x = x; } public int getY() { return(y); } public void setY(int y) { this.y = y; } }
Curve.java
একটি (সারাংশ) বাঁকা আকার (খোলা বা বন্ধ) । Curve.java An (abstract) curved Shape (open or closed)
/** A curved shape (open or closed). Subclasses will include * arcs and circles. *
public abstract class Curve extends Shape {}
StraightEdgedShape.java
সরাসরি ধার সম্বলিত একটি আকৃতি (খোলা বা বন্ধ) । A Shape with straight edges (open or closed).
/** A Shape with straight edges (open or closed). Subclasses * will include Line, LineSegment, LinkedLineSegments, * and Polygon. * public abstract class StraightEdgedShape extends Shape {}
Measurable.java
পরিমাপযোগ্য এলাকায় ইন্টারফেস ডিফাইনিং ক্লাস। Interface defining classes with measurable areas
/** Used in classes with measurable areas. * ************** public interface Measurable { double getArea(); }
Circle.java
একটি বৃত্ত যা আকার প্রসারিত করে এবং পরিমাপ প্রয়োগ করে । A circle that extends Shape and implements Measurable.
/** A circle. Since you can calculate the area of * circles, class implements the Measurable interface. * public class Circle extends Curve implements Measurable { private double radius; public Circle(int x, int y, double radius) { setX(x); setY(y); setRadius(radius); } public double getRadius() { return(radius); } public void setRadius(double radius) { this.radius = radius; } /** Required for Measurable interface. */ public double getArea() { return(Math.PI * radius * radius); } }
MeasureUtil.java
পরিমাপযোগ্য স্থানের উপর কাজ করে । Operates on Measurable instances
/** Some operations on Measurable instances. * public class MeasureUtil { public static double maxArea(Measurable m1, Measurable m2) { return(Math.max(m1.getArea(), m2.getArea())); } public static double totalArea(Measurable[] mArray) { double total = 0; for(int i=0; i