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