এটি সম্ভব তবে আপনার এটির মতো নয়।
আপনাকে বেস শ্রেণিতে একটি নো-আরগস কনস্ট্রাক্টর যুক্ত করতে হবে এবং এটিই!
public abstract class A {
private String name;
public A(){
this.name = getName();
}
public abstract String getName();
public String toString(){
return "simple class name: " + this.getClass().getSimpleName() + " name:\"" + this.name + "\"";
}
}
class B extends A {
public String getName(){
return "my name is B";
}
public static void main( String [] args ) {
System.out.println( new C() );
}
}
class C extends A {
public String getName() {
return "Zee";
}
}
আপনি যখন কোনও ক্লাসে কোনও কনস্ট্রাক্টর (কোনও) যুক্ত করবেন না তখন সংকলক আপনার জন্য ডিফল্ট কোনও আরগ কনস্ট্রাক্টর যুক্ত করবেন না।
যখন ডিফল্ট কোনও আরগ সুপার () এ কল করে না; এবং যেহেতু আপনার কাছে এটি সুপার ক্লাসে নেই আপনি সেই ত্রুটি বার্তাটি পান।
এটাই তো প্রশ্ন নিজেই।
এখন, উত্তর প্রসারিত:
আপনি কি সচেতন যে পৃথক পৃথক মান (ডেটা) নির্দিষ্ট করার জন্য একটি সাবক্লাস (আচরণ) তৈরি করা কোনও অর্থবোধ করে না ?? !!! আমি আশা করি আপনি করবেন।
যদি কেবলমাত্র সেই নামটিই "নাম" হয় তবে একটি একক শ্রেণির প্যারামেট্রাইজ করা যথেষ্ট!
সুতরাং আপনার এটির দরকার নেই:
MyClass a = new A("A");
MyClass b = new B("B");
MyClass c = new C("C");
MyClass d = new D("D");
বা
MyClass a = new A();
MyClass b = new B();
MyClass c = new C();
MyClass d = new D();
আপনি যখন এটি লিখতে পারেন:
MyClass a = new MyClass("A");
MyClass b = new MyClass("B");
MyClass c = new MyClass("C");
MyClass d = new MyClass("D");
যদি আমি বেসক্লাস কনস্ট্রাক্টরের পদ্ধতি স্বাক্ষরটি পরিবর্তন করতে চাই তবে আমাকে সমস্ত উপশ্রেণী পরিবর্তন করতে হবে।
ওয়েলস হ'ল উত্তরাধিকার হ'ল হ'ল সংযুক্তি তৈরির নিদর্শন যা ওও সিস্টেমে অনাকাঙ্ক্ষিত। এটি এড়ানো উচিত এবং সম্ভবত সংমিশ্রণে প্রতিস্থাপন করা উচিত।
আপনার যদি সত্যিই সাবক্লাস হিসাবে তাদের প্রয়োজন হয় তা ভাবুন। এজন্য আপনি দেখেন খুব ঘন ঘন ইন্টারফেস অন্তর্নিহিত ব্যবহৃত:
public interface NameAware {
public String getName();
}
class A implements NameAware ...
class B implements NameAware ...
class C ... etc.
এখানে বি এবং সি এ থেকে উত্তরাধিকার সূত্রে প্রাপ্ত হতে পারে যা তাদের মধ্যে খুব উচ্চতম সংযোগ তৈরি করতে পারে, ইন্টারফেস ব্যবহার করে দম্পতি হ্রাস করা হয়, যদি এ সিদ্ধান্ত নেয় তবে এটি আর "নাম আওয়ার" থাকবে না অন্য শ্রেণিগুলি ভেঙে পড়বে না।
অবশ্যই, আপনি যদি আচরণটি পুনরায় ব্যবহার করতে চান তবে এটি কাজ করবে না।