জাভাতে Abstract class এর অবজেক্ট তৈরি করার কোন উপায় নেই। কিন্তু Abstract class এর Constructor কেন বৈধ?

asked 04 Dec '16, 08:47

Ashique's gravatar image

Ashique
6318


কনস্ট্রাক্টর মূলত অবজেক্টটি তৈরি করে। একটি ক্লাসে ফিল্ড থাকলে সেগুলোকে ইনিশিয়ালাইজ করা যায় কনস্ট্রাক্টর ব্যবহার করে।

মনে করো, একটি অ্যাবস্ট্রাক্ট ক্লাসে দুটি ফিল্ড আছে, x ও y । তুমি চাও এটি সবসময় একটি নির্দিষ্ট উপায়ে ইনিশিয়ালাইজ হোক, এর কনক্রিট ক্লাস বা সাবক্লাস যেভাবেই লেখা হোক না কেনো। এজন্যে তুমি অ্যাবস্ট্রাক্ট ক্লাসে একটি কনস্ট্রাক্টর লিখবে। এখন তুমি যদি এদের কনক্রিট ক্লাস বা সাবক্লাস তৈরি করো, তাহলে তােমার সাবক্লাসের কনস্ট্রাক্টরকে সুপার ক্লাস অর্থাৎ তোমার অ্যাবস্ট্রাক্ট ক্লাসের কনস্ট্রাক্টরকে কল করতে হবে। এটি করা হয় সুপার (super) কিওয়ার্ড ব্যবহার করে। এটি একটি বাধ্যবাদকতা।

public abstract class AbstractPoint {
    private int x;
    private int y;
    public AbstractPoint(int x, int y) {
        this.x = x;
        this.y = y;
    }
}
public class MyPointI extends AbstractPoint {
    public MyPointI(int x, int y) {
        super(x, y);
    }
}

তুমি যদি সুপার ক্লাসের কনস্ট্রাকরটিকে কল না করো সাব ক্লাস থেকে, তাহলে তোমার সাবক্লাসটি কম্পাইল হবে না।

এভাবে নির্দিষ্ট উপায়ে কোন কিছু তৈরি করার পক্রিয়া বলে দেওয়ার জন্যে অ্যাবস্ট্রাক্ট ক্লাসে কনস্ট্রাক্টর লেখা হয় এবং এটি সম্পূর্ণ বৈধ।

permanent link

answered 04 Dec '16, 09:50

bazlur_rahman's gravatar image

bazlur_rahman
1.3k17

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:

×68

question asked: 04 Dec '16, 08:47

question was seen: 923 times

last updated: 04 Dec '16, 09:50