আপনি যদি ওভাররাইড করতে যাচ্ছেন তবে আমি এই স্থির রাখার কোনও বৈধ কারণ দেখতে পাচ্ছি না। আমি বিমূর্তি ব্যবহারের পরামর্শ দেব (উদাহরণ কোড দেখুন)। :
public interface Person {
public abstract String getName();
//this will be different for each person, so no need to make it concrete
public abstract void setName(String name);
}
এখন আমরা বাবাকে যুক্ত করতে পারি:
public class Dad implements Person {
private String name;
public Dad(String name) {
setName(name);
}
@Override
public final String getName() {
return name;
}
@Override
public final void setName(String name) {
this.name = name;
}
}
ছেলেটি:
public class Son implements Person {
private String name;
public Son(String name) {
setName(name);
}
@Override
public final String getName() {
return name;
}
@Override
public final void setName(String name) {
this.name = name;
}
}
এবং বাবা একটি সুন্দর মহিলার সাথে দেখা:
public class StepMom implements Person {
private String name;
public StepMom(String name) {
setName(name);
}
@Override
public final String getName() {
return name;
}
@Override
public final void setName(String name) {
this.name = name;
}
}
দেখে মনে হচ্ছে আমাদের একটি পরিবার আছে, আসুন তাদের নাম বিশ্বকে জানান:
public class ConsoleGUI {
public static void main(String[] args) {
List<Person> family = new ArrayList<Person>();
family.add(new Son("Tommy"));
family.add(new StepMom("Nancy"));
family.add(new Dad("Dad"));
for (Person person : family) {
//using the getName vs printName lets the caller, in this case the
//ConsoleGUI determine versus being forced to output through the console.
System.out.print(person.getName() + " ");
System.err.print(person.getName() + " ");
JOptionPane.showMessageDialog(null, person.getName());
}
}
}
সিস্টেম.আউট আউটপুট: টমি ন্যান্সি ড্যাড
সিস্টেম.অর
উপরের মত একই (কেবল লাল ফন্ট রয়েছে)
জোপ আউটপুট:
টমি তারপর
ন্যান্সি তারপরে
বাবা