যে কেউ যিনি প্রোগ্রামিং কোনো সামান্য জ্ঞান আছে, সম্পর্কে কেন বিমূর্ত বেস ক্লাস আছে ভাবছি। তাদের উদ্দেশ্য কী? কিভাবে একটি বিমূর্ত বর্গ তৈরি করবেন? সুবিধার তারা বাস্তবে অফার কি কি? কেন তারা প্রোগ্রামিং প্রয়োজন হয় এবং তাদের বাস্তবায়ন কিছু বৈশিষ্ট্য বিবেচনা করা উচিত?
বিমূর্ত শ্রেণীর
যার বস্তু তৈরি করা যাবে না ভিত্তিতে প্রোগ্রামিং নামক ইউনিট কোডে তাই। উল্লেখ্য যে উত্তরাধিকারীদের এই শ্রেণীর বিমূর্ত হতে পারে না। অতএব, তাদের উপর ভিত্তি করে বস্তুর সৃষ্টি বেশ সম্ভব। আমরা যদি জাভা উদাহরণ বিবেচনা, আমরা একটি মডেল যা আমরা ক্লাসে উ মধ্যে কনস্ট্রাকটর বর্ণনা করতে পারেন কিন্তু তাদের ব্যবহার করার জন্য, আমরা পারব না গঠন করা। এই পরিস্থিতি থেকে বেরিয়ে কোন পরিবর্তনশীল রেফারেন্স ঘোষণা হয়। আর তুমি সুস্পষ্টভাবে সংজ্ঞায়িত করা যাতে এটি বর্গ উ: একটি অবজেক্ট স্থানটিকে এই এটা কিভাবে কাজ করা যেতে পারে প্রয়োজন? এটা আমাদের আনা সাহায্য করবে। এটা মন যে পিতা বা মাতা বর্গ সবসময় বংশধর চেয়ে বেশি বহুমুখী বলে মনে করা হয় মধ্যে বহন করা উচিত। বিভিন্ন প্রোগ্রামিং ভাষাতে স্বয়ংক্রিয়ভাবে আনতে ব্যবহার করা হয়। কিন্তু যদি এমন একটি প্রক্রিয়া উপস্থিতিতে অনাস্থা হয়, তাহলে আপনি স্পষ্টভাবে অবজেক্ট রেফারেন্স আবশ্যক।
বিমূর্ত পদ্ধতি
তারা কি কি? সারাংশ কল ঐ পদ্ধতি এই শ্রেণীর বাস্তবায়িত হয় না। সুতরাং, নিম্নলিখিত প্রথম বন্ধনী (যা তাতে ব্যবহৃত আর্গুমেন্ট তালিকা) আকৃতির খোলার (যাহার ফলে পদ্ধতির অবস্থিত ব্লক বিবরণ), এবং শুধুমাত্র একটি সেমিকোলন দেবেন না। সুতরাং, এই ক্ষেত্রে, সেখানে এটি কি সম্পর্কে কোন তথ্য নেই। এখানে প্রশ্ন জিজ্ঞাসা করা হতে পারে: "এবং কি পদ্ধতি বাস্তবায়ন ছাড়া?" সব পরে, তিনি ব্যবহার করা নয়! অবশ্য, শ্রেণীকক্ষ, যেখানে তিনি বর্ণনা করা হয়েছিল, এই না সম্ভব। কিন্তু আমরা যদি বংশধর দৃষ্টিকোণ থেকে পরিস্থিতি বিবেচনা, এটা বলা যাবে না। এবং এটা এই শ্রেণীর মধ্যে উপলব্ধ একটি নির্দিষ্ট বিবরণ চলাচল করবে।
বৈশিষ্ট্য বিমূর্ত পদ্ধতি
তাদের ব্যবহার করে সীমাবদ্ধতা রয়েছে। এর উদাহরণ বিবেচনা করি জাভা প্রোগ্রামিং ভাষা। একটা প্রয়োজন যদি বর্গ অন্তত এক ধরনের পদ্ধতি আছে, এটা বিমূর্ত হতে হবে। যে কোনো ক্ষেত্রে এটি যেমন একটি নির্মাণ ব্যবহার করতে উপযুক্ত? এখানে একটি উদাহরণ বর্গ পোষা প্রাণী সঙ্গে এই বুঝতে যাক। বুঝতে কোন শব্দ যে তারা প্রকাশিত হয়েছে যে আরম্ভ করার জন্য। অতএব, সবচেয়ে সাধারণ ক্লাসে পদ্ধতি শব্দ বাস্তবায়ন সেট করা নেই। কিন্তু নির্মিত শরীরের যা পৃথক্ তার জন্য ব্লক মাধ্যমে। এবং নিম্নলিখিত মধ্যে যখন কুকুর বর্গ, বিড়াল বা ধেড়ে ইঁদুরের ন্যায় প্রাণিবিশেষ তৈরি এটির জন্য একটি একক পদ্ধতি, ফ্রেমওয়ার্ক যা সমস্ত বৈশিষ্ট্য জন্যে প্রকাশ করা হবে নির্ধারিত করা হবে না।
ইন্টারফেস
প্রোগ্রামিং অনেক টুলস যার উদ্দেশ্য নির্মিত - সাহায্য করার জন্য মানুষ একটি ভাল মানের পণ্য আছে। আর বিবেচনা অধীন বিষয় এই দৃষ্টিভঙ্গি দেওয়া উচিত, এবং যে সবাই জানে ইন্টারফেস থেকে একটি বিমূর্ত বর্গ ভিন্ন। সুতরাং, গত বৈশিষ্ট্য এটা হতে পারে না যে বৈশিষ্ট্য ও পদ্ধতি শরীর সংজ্ঞায়িত করা হয়। ইন্টারফেস থেকে একটি বিমূর্ত বর্গ মধ্যে পার্থক্য পরীক্ষা করার দ্বারা একটি বিশেষ বিষয়ে আরও বাস করা উচিত নয়। সুতরাং, প্রথম উত্তরাধিকারসূত্রে হয়, দ্বিতীয় - নিরূপিত হয়। অনভিজ্ঞ ব্যক্তি এই তুচ্ছ মনে হতে পারে। প্রয়োজনীয় হিসাবে যতটা - কিন্তু সত্য না হয় যে শুধুমাত্র একটি বর্গ উত্তরাধিকারসূত্রে হতে পারে, এবং অনুভব করেছিল। এটা কি ইন্টারফেস থেকে ভিন্ন হয় বিমূর্ত ক্লাসের। জাভা এখনও বৈশিষ্ট্য এটি বর্ণনা করা যায় শুধুমাত্র বিমূর্ত প্রকাশ্য পদ্ধতি এবং স্ট্যাটিক ধ্রুবক হয়। কিন্তু একই ইন্টারফেস মুখে পড়তে উত্তরাধিকারসূত্রে করা যেতে পারে। এটা তোলে নির্দেশ ব্যবহার অপারেটার প্রকাশ্য মাধ্যমে সর্বজনীন প্রয়োজন।
ইন্টারফেস একাধিক উত্তরাধিকার
এই বৈশিষ্ট্যটি অনেক প্রোগ্রামিং ভাষার (যেমন, জাভা আমাদের দ্বারা বিবেচিত) ক্লাস জন্য উপলব্ধ নয়। এই সমস্যার একটি সংখ্যা জন্য হয়েছে। পারম্পর্য মধ্যে ঘটতে যে এই ধরনের অস্পষ্টতা ইঙ্গিত করে। এই একাধিক ইন্টারফেস উত্তরাধিকার প্রবর্তনের জন্য কারণ ছিল। এই আংশিকভাবে বিদ্যমান সমস্যা solves, কিন্তু সকলে নও। সুতরাং, এনক্যাপস্যুলেশন এবং পলিমরফিজম নীতির ধন্যবাদ, ইন্টারফেসগুলি সফলভাবে বিভিন্ন শ্রেণীর বিভিন্ন পদ্ধতি অনুযায়ী বাস্তবায়িত করা যেতে পারে (যদিও তারা একই নাম হবে)। কিন্তু বিদ্যমান সমস্যা সম্পর্কে ভুলবেন না। সুতরাং, যখন একাধিক ইন্টারফেসগুলি সঙ্গে কাজ সবসময় নির্দিষ্ট করার আমরা কে মনে আছে থাকবে। এছাড়াও, সমস্যা হতে পারে এবং যখন আপনি দুইভাবে একই নামের সঙ্গে কাজ করার চেষ্টা - এই ক্ষেত্রে, তারা সুবিধা গ্রহণ করতে সক্ষম হবে না। অতএব, এই ক্ষেত্রে এটি মোট বিক্রয় উপস্থিতিতে যত্ন নিতে প্রয়োজন।
বিমূর্ত তথ্য
এই ধারণা প্রোগ্রাম চাবিকাঠি। এই ক্ষেত্রে, এবং স্বাধীন পর্যালোচনা বিমূর্ততা অধীনে ইন্টারফেস এবং বাস্তবায়ন বিচ্ছেদ বুঝতে। এখানে একটি উদাহরণ দেখি। আমরা একটি টেলিভিশন, যা একটি বস্তু বা মডিউল আছে। এটি একটি ইন্টারফেস আছে। যেমন, তারা নিয়ন্ত্রণ, সেইসাথে শব্দ এবং ইমেজ আছে। আরও নিখুঁত ইন্টারফেস ব্যবহার করা হয়, ব্যবহারে আরো আরামদায়ক টিভি। আমরা কোনো বোতাম টিপে প্রোগ্রামের মধ্যে সুইচ করতে পারেন। এই ক্ষেত্রে, টিভি শারীরিক প্রসেসের সম্পর্কে চিন্তা করার কোন প্রয়োজন নেই। তাদের যত্ন নিতে বিশেষজ্ঞ, যারা ডিভাইস সংগ্রহ। আমরা চাই মানুষ শুধুমাত্র বৈশিষ্ট্য আগ্রহী। প্রোগ্রামিং ফিরে আমরা বলতে পারি যে, তারা একটি অনুরূপ ইন্টারফেস এবং বাস্তবায়ন করা হয়। এছাড়াও, যদি কোন ব্যক্তি তার জ্ঞান আত্মবিশ্বাসী তিনি "অপসারণ" করতে পারেন আমাদের প্রকল্পিত টিভি আবরণ এবং এটি উন্নত। যদিও এই স্থানীয় সাফল্য হতে পারে, অধিকাংশ ক্ষেত্রে, শেষ ফলাফল নেতিবাচক। অতএব, অ্যাক্সেস সমর্থিত প্রোগ্রামিং নিষেধ এবং বিমূর্ত ডেটার অভ্যন্তরীণ উপাদান আড়াল করতে। এই প্রক্রিয়া নীতিকে একটি উপায় অভ্যন্তরীণ উপাদান ইচ্ছাকৃত বা অনিচ্ছাকৃত সমন্বয় প্রতিরোধ করার জন্য প্রদান করে। আর যখন বিমূর্ত ধরনের তথ্য সম্পর্কে কথা বলা, অপারেশন যে তাদের সম্পাদনা করা যেতে পারে একটি সেট একটি সেটের গড়।
বস্তু
আমরা ইতিমধ্যে একটি বিমূর্ত বর্গ ও সাধারণ এবং সাধারণভাবে ইন্টারফেস দেখেছি। এখন দিন বিস্তারিত আমাদের জ্ঞান। বেতন মনোযোগ বস্তু শুরু। তাদের নীচে, সাধারণভাবে, পরিবেশগত বাস্তবতা স্থান ও সময় বিদ্যমান সচেতন। কিন্তু আনুষ্ঠানিকভাবে বস্তু চিহ্নিত মধ্যে প্রোগ্রাম কঠিন (দেখুন দার্শনিক ও তাত্ত্বিক বিন্দু সহ)। অতএব, এটা তার সম্পত্তি জন্য হয়েছে। উদাহরণস্বরূপ, নিম্নলিখিত: একটি বস্তুর স্বতন্ত্র চিহ্নিত করা যায় (একটি অনন্য নাম সহ), এটি একটি নির্দিষ্ট অবস্থায় রয়েছে এবং আচরণ একটি নির্দিষ্ট প্যাটার্ন ব্যবহার করে।
উত্তরাধিকার
যেহেতু আপনার প্রোগ্রামিং বস্তুর মধ্যে একটি হায়ারারকিকাল গাছ ভবন সম্পর্ক উপর ভিত্তি করে তৈরি, প্রশ্ন যে পিতামাতার কোড লাইব্রেরি ধরনের অন্তর্নিহিত বৈশিষ্ট্য স্থানান্তর করা হয়েছিল সম্পর্কে উত্থাপিত হয়। উত্তরাধিকার অধীনে সম্পর্ক বুঝতে যখন কেউ এক আচরণ এবং অন্য কিছু কাঠামো পুনরাবৃত্তি। সাধারণ জীবন, এটা সর্বত্র পাওয়া যেতে পারে। এই ধরনের স্থগিত এবং অপেক্ষাকৃত বিমূর্ত উপাদান প্রোগ্রামিং করা হয়। একটি তুলনা হিসাবে, আসলে সেখানে পাখির মত এমন কোন শরীর নেই। এটি একটি বিমূর্ত নাম। একটি নির্দিষ্ট উদাহরণস্বরূপ হিসেবে নেতৃত্ব চা, নাইটিংগেল অথবা চড়ুই। ধন্যবাদ উত্তরাধিকার থেকে আমরা ক্লাসে লাইব্রেরি ব্যবহার করতে পারেন, সেইসাথে একটি নির্দিষ্ট প্রোগ্রামের জন্য তাদের বিকাশ। এই সরঞ্জামটি একযোগে যোগ করে অথবা একটি ইতিমধ্যে তৈরি বৈশিষ্ট্য পরিবর্তন, আমাদের নতুন বস্তু তৈরি করতে পারবেন। উত্তরাধিকারী সব পদ্ধতি ও তার পূর্বপুরুষ ক্ষেত্র পায় এবং তার নিজস্ব বৈশিষ্ট্য অর্জন প্রয়োজনে। আসলে বিমূর্ত উপাদান এবং ঐতিহ্য নীতিকে আছে কারণে সেখানে অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং মধ্যে পরিবর্তনের প্রশস্ত সুযোগ আছে। উপরন্তু, এটা সমস্যা সমাধানে করার জন্য একটি নমনীয় পদ্ধতির পারেন। আপনি যখন স্থানান্তরিত ডেটা এবং ফাংশন একটি নতুন শ্রেণী উত্তরাধিকারী।
পলিমরফিজম
এটা তোলে সমস্যার বিভিন্ন ধরনের সমাধান করতে একই ফাংশন প্রয়োগ করা প্রয়োজন। এই ক্ষেত্রে একটি ভিন্ন কর্ম সম্ভাবনার উপস্থিতি প্রদান করে, যা বিষয়বস্তু বস্তুর টাইপ যা দিয়ে কাজ সম্পন্ন করা হয় উপর নির্ভর করবে। পলিমরফিজম অধীনে উপাদান একটি সাধারণ পিতা বা মাতা আছে, বিভিন্ন উপায়ে সমস্যা শব্দার্থিক অর্থ অনুরূপ সম্পাদন করতে বৈশিষ্ট্য বুঝতে। আমরা পশুদের সঙ্গে একটি উপমা আঁকা। চালানো করার জন্য - কর্ম নয়। আমরা সবাই জানি কিভাবে এটি ঘটবে। কিন্তু ভিন্ন প্রাণী (সিংহ, হাতি, শিম্পাঞ্জি, কুমির, কচ্ছপ) এই কর্ম আউট বিভিন্ন উপায়ে সম্পন্ন করা হবে। এই ক্ষেত্রে, তাদের আন্দোলন দায়ী ডেভেলপার, যা প্রয়োজনে একটি নির্দিষ্ট ক্ষেত্রে একটি নির্দিষ্ট রুটিন আলগোরিদিম এবং এটি সফলভাবে বাস্তবায়নের জন্য হতে পারে। এই পদ্ধতি একটি সেট ব্যবহার করা যাবে। প্রতিটি বর্গ প্রোগ্রামার মধ্যে একই সময়ে নির্দিষ্ট করে যা বৈশিষ্ট্য যা সহজাত আপত্তি। সন্তান কিছু পরিবর্তন, আপনি এই ক্ষেত্রে নির্দিষ্ট, আকাঙ্ক্ষিত কর্ম অর্জন করতে পারেন। এই ধরনের একটি প্রভাব বস্তুর পলিমরফিজম বলা হয়। সাধারণভাবে, একটি বিমূর্ত বর্গ প্রোগ্রামিং জন্য একটি অত্যন্ত দরকারী টুল।