কম্পিউটার টিউটোরিয়াল

জাভাতে Enum কি কোনো ক্লাস এক্সটেন্ড করতে পারে?

না, জাভাতে Enum (Enumeration) কোনো ক্লাস এক্সটেন্ড করতে পারে না।

কারণ

সকল Enum নেইমপ্লেইন্টligen java.lang.Enum ক্লাসকে ইমপ্লিসিটলি এক্সটেন্ড করে। যেহেতু জাভা মাল্টিপল ইনহেরিটেন্স সাপোর্ট করে না (একসাথে একাধিক ক্লাস এক্সটেন্ড করা যায় না), তাই Enum ক্লাস আর কোনো ক্লাস এক্সটেন্ড করতে পারে না।

উদাহরণ: Enum এক্সটেন্ড করার চেষ্টা (কম্পাইল এরর)

class Sample { }

enum Scooters extends Sample { } // কম্পাইল এরর

কম্পাইল টাইম এরর

EnumExample.java:5: error: '{' expected
enum Scooters extends Sample{
    ^
EnumExample.java:5: error: ',', '}', or ';' expected
enum Scooters extends Sample{
    ^
2 errors

নোট: এনারে extends কীওয়ার্ড ব্যবহার করা যায় শুধু ইন্টারফেস ইমপ্লিমেন্ট করার জন্য (যেমন enum MyEnum implements MyInterface { })।

Enum-এর বৈশিষ্ট্য

  • কনস্ট্যান্ট ভ্যালু স্টোর করে (যেমন দিন, মहीনা, ডিরেকশন)।
  • ক্লাসের মতো ভেরিয়েবল, মেথড, কনস্ট্রাক্টর থাকতে পারে (শুধু কনক্রিট মেথড)।
  • ইনস্ট্যান্স তৈরি করা যায় না (new Enum() করা যায় না)।
  • values(), valueOf(), ordinal() ইত্যাদি বিল্ট-ইন মেথড থাকে।

সঠিক Enum উদাহরণ

enum Days {
    SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY;
    
    // মেথড যোগ করা যাবে
    public boolean isWeekend() {
        return this == SUNDAY || this == SATURDAY;
    }
}
  1. জাভাতে JTextField-এ প্যাডিং যোগ করুন

  2. জাভাতে ইন্টারফেস

  3. জাভাতে অ্যাবস্ট্রাক্ট ক্লাস

  4. জাভাতে ফাইনাল ক্লাস