Introduction for Abstract Class
C++ में जब Abstract Class होता था तब कोई abstract keyword का इस्तेमाल नहीं किया जाता था | लेकिनं जिस Class के अन्दर pure virtual function होता था तब वो class Abstract Class हो जाती थी |Java में देखे तो virtual नाम का कोई keyword नहीं होता, लेकिन Abstract Class का इस्तेमाल Java में भी abstract keyword के साथ किया जाता है |
Abstract class को abstract keyword के साथ लिखा जाता है |
Syntax for Abstract Class
abstract class class_name(); //abstract class
Abstract Method
abstract return_type method_name(); //abstract method
Abstract Class का object; create नहीं किया जा सकता |
Source Code :
abstract class A{ //Abstract Class
void disp(){
System.out.println("class A");
}
public static void main(String args[]){
A a = new A(); //Object for Abstract Class
a.disp();
}
}
Output :
A.java:8: error: A is abstract; cannot be instantiated
abstract class का कोई object नहीं होता, लेकिन जो sub-class इसे inherit करता है | उससे abstract class के methods को access किया जा सकता है |
जब abstract class; create होता है तब उसे किसी abstract method की जरुरत नहीं होता | Source Code :
abstract class A{ //Abstract Class
void disp1(){
System.out.println("class A");
}
}
class B extends A{
void disp2(){
System.out.println("class B");
}
public static void main(String args[]){
B b = new B();
b.disp1();
b.disp2();
}
}
Output :
class A class B
Abstract Class का reference variable बनाया जा सकता है लेकिन उसका object नहीं बनाया जा सकता |
Source Code :
abstract class A{ //Abstract Class
void disp1(){
System.out.println("class A");
}
}
class B extends A{
void disp2(){
System.out.println("class B");
}
public static void main(String args[]){
A a = new B();
a.disp1();
}
}
Output :
class A
Abstract method के बारे में देखे तो हर abstract method का class; Abstract class ही होता है | वहा पर उस abstract method को सिर्फ declare करना पड़ता है |
abstract class A{ //Abstract Class
abstract void disp1(); //Abstract Method
}
class B extends A{
void disp1(){
System.out.println("class B");
}
public static void main(String args[]){
A a = new B();
a.disp1();
}
}
Output :
class B
Abstract classes using Multilevel Inheritance1
जब abstract super class के method की definition दी जाती तो super class का sub class भी abstract class हो जाता है |For eg. Program पर दिखाया गया है, कि class A ये एक abstract super class है और वहा पर disp1()नाम का abstract method भी लिया है और उसके class B(sub class) कोई disp1() नाम का implementation नहीं किया है , इसीलिए वो भी abstract class हो जाता है और बाद में class C पर disp1() इस abstract method की definition दी गयी है और बाद में class C का object बनाकर disp1() और disp2() को access किया गया है |
Source Code :
abstract class A{ //Abstract Class
abstract void disp1(); //Abstract Method
}
abstract class B extends A{ //Abstract Class
void disp2(){
System.out.println("class B");
}
}
class C extends B{
void disp1(){
System.out.println("class A");
}
public static void main(String args[]){
C c = new C();
c.disp1();
c.disp2();
}
}
Output :
class A class B
Sub-class में भी abstract method हो सकती है |
Source Code :
abstract class A{ //Abstract Class
void disp1(){
System.out.println("class A");
}
}
abstract class B extends A{ //Abstract Class
abstract void disp2(); //Abstract Method
}
class C extends B{
void disp2(){
System.out.println("class B");
}
public static void main(String args[]){
C c = new C();
c.disp1();
c.disp2();
}
}
Output :
class A class B
Abstract classes using Multilevel Inheritance2
एक abstract class में कितने भी abstract methods दिए जा सकते है | ये जरुरी नहीं है कि, हर abstract class के अन्दर abstract method हो |Program पर class A इस abstract parent class में दो abstract methods दिए गए है | लेकिन उन दोनों abstract methods की definition उसे inherit किये गए sub-class पर की जाती है | उन दोनों abstract class का implementation करना जरुरी है |
Program पर Source Code ये है कि class A पर दो abstract methods दिए गए है और class B(sub-class) पर उसके सिर्फ एक ही abstract method का implementation किया गया है | इससे वो भी class abstract class हो जाती है |
Source Code :
abstract class A{ //Abstract Class
abstract void disp1();
abstract void disp2();
}
abstract class B extends A{ //Abstract Class
void disp2(){
System.out.println("class B");
}
}
abstract class C extends B{ //Abstract Class
void disp3(){
System.out.println("class C"); //
}
}
class D extends C{
void disp1(){
System.out.println("class D"); //
}
public static void main(String args[]){
D d = new D();
d.disp1();
d.disp2();
d.disp3();
}
}
Output :
class D class B class C







No comments: