prashanth sriatsva

class AbstractDemo {

void display() {
System.out.println("display() called from AbstractDemo class");
}

void fun() {
System.out.println("fun() called from AbstractDemo class");
}

}

class ConcreteDemo extends AbstractDemo {

void bar() {
System.out.println("fun() called from ConcreteDemo class");
}

@Override
void display() {
System.out.println("display() called from ConcreteDemo class");
}
public static void main(String[] args) {
AbstractDemo abstractDemo=new AbstractDemo();   //handle: AbstractDemo, object:AbstractDemo
abstractDemo.display();
abstractDemo.fun();

ConcreteDemo concreteDemo=new ConcreteDemo();    //handle: ConcreteDemo, object:ConcreteDemo
concreteDemo.display();
concreteDemo.bar();

/*DYNAMIC BINDING EXAMPLE*/
/*USING HANDLE OF PARENT_CLASS TO DEAL WITH OBJECTS OF BOTH (PARENT_CLASS AND CHILD_CLASS) */
abstractDemo=new ConcreteDemo();  //handle: AbstractDemo, object:ConcreteDemo
abstractDemo.display();  //calls display() of ConcreteDemo
\abstractDemo.bar();               //cannot call bar() of ConcreteDemo because bar() does not exist in AbstractDemo
}

}

Comments

Popular posts from this blog

commenting in java

Running a java program