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