package com.java2novice.generics;
public class MyBoundedClassEx {
public static void main(String a[]){
BoundEx bec = new BoundEx(new C());
bec.doRunTest();
BoundEx beb = new BoundEx(new B());
beb.doRunTest();
BoundEx bea = new BoundEx(new A());
bea.doRunTest();
}
}
/**
* This class only accepts type parametes as any class
* which extends class A or class A itself.
* Passing any other type will cause compiler time error
*/
class BoundExextends A>{
private T objRef;
public BoundEx(T obj){
this.objRef = obj;
}
public void doRunTest(){
this.objRef.printClass();
}
}
class A{
public void printClass(){
System.out.println("I am in super class A");
}
}
class B extends A{
public void printClass(){
System.out.println("I am in sub class B");
}
}
class C extends A{
public void printClass(){
System.out.println("I am in sub class C");
}
}
No comments:
Post a Comment