Abstract ক্লাশ এমন এক ধরনের ক্লাশ যাকে ইন্সট্যানশিয়েট করা যায় না বা যার কোন অবজেক্ট তৈরী করা যায় না।
Abstract ক্লাশ ডিক্লেয়ার করতে হয় এভাবে।

এখন এই ক্লাশের মধ্যে যত মেথড আর ভেরিয়েবলই থাকুক না কেন এটির কোন অবজেক্ট তৈরী করা যাবে না।
তবে Abstract ক্লাশকে কোন ক্লাশে আবার তুমি extend করতে পারবে।
Abstract ক্লাশে Abstract মেথডও থাকতে পারে। যেমন:

কিন্তু সে মেথডের ভেতরে কোন কোড থাকা যাবে না। প্রোগ্রামিং এর ভাষায় একে বলা হয় মেথড ইমপ্লিমেন্টেশন। মানে এরকম:

সিম্পলি আগের মতো মেথডের নামের শেষে একটা সেমিকোলন(;) দিয়ে শেষ করতে হবে।
একটা Abstract ক্লাশে অনেকগুলো Abstract মেথড থাকতে পারে, এবং আরো non-abstract মেথডও থাকতে পারে।
কিন্তু শর্ত হলো যখন একটি এ্যাবস্ট্রাক্ট ক্লাশকে অন্য কোন ক্লাশ extend করবে তখন অবশ্যই তাকে এ্যাবস্ট্রাক্ট ক্লাশে যত এ্যাবস্ট্রাক্ট মেথড ছিলো সবগুলোকেই ইমপ্লিমেন্ট করতে হবে। অর্থাৎ মেথডগুলো ওভাররাইড করে ভেতরে কোড লিখতে হবে।