ক্লাস কাস্ট এক্সেপশন বলতে কি বোঝায় এবং এটি কখন ঘটে?

asked 12 Jan, 20:04

Emranul%20haque%20Rakib's gravatar image

Emranul haque Rakib
33911

edited 04 Feb, 07:44

Mosharraf%20Hosain's gravatar image

Mosharraf Hosain ♦
23618


আপনি যখন একটা ক্লাসকে অন্য ক্লাসে কাস্ট করেন এবং সেই টাইপ কাস্ট যদি ভুলভাবে করা হয় তবে আপনি ক্লাস কাস্ট এক্সেপশন খাবেন।

Integer i = new Integer(100);
String s = (String)i;            // ClassCastException thrown here.

এখানে Integer কিন্তু String এর সাবক্লাস না, তাই আপনি Integer কে String এ কাস্ট করতে গেলে ClassCastException খাবেন।

জাভাতে টাইপ কাস্ট করার কিছু নিয়ম আছে, মনে করেন আপনার এই রকম কিছু ক্লাস আছে,

class A {...}
class B extends A {...}
class C extends A {...}
  • আপনি এই সবগুলো ক্লাসকে Object টাইপে কাস্ট করতে পারবেন। কারণ জাভাতে সব ক্লাস Object ক্লাস থেকে ইনহেরিট করা।
  • আপনি B, C কে A তে কাস্ট করতে পারবেন।
  • আপনি A কে B তে কাস্ট করতে পারবেন যদি A এর মধ্যে B এর রেফারেন্স থাকে।

এটার উদাহরণ এই রকম হতে পারে,

A refA = new B();
B b = (B)refA; // it's ok
C c = (C)refA  // not ok. ClassCastException thrown
  • আপনি B কে C তে কাস্ট করতে পারবেন না যদিও তারা A থেকে এসেছে । কারণ C , B এর সাবক্লাস না।

ধন্যবাদ :)

permanent link

answered 18 Jan, 08:03

menon's gravatar image

menon
4.3k223

edited 20 Jan, 07:07

Mosharraf%20Hosain's gravatar image

Mosharraf Hosain ♦
23618

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:

×205
×1

question asked: 12 Jan, 20:04

question was seen: 357 times

last updated: 04 Feb, 07:44