(Lec-22) Java SE (Polymorphism, Abstract Classes and Methods)
(Lec-22) Java SE (Polymorphism, Abstract Classes and Methods)
(CORE JAVA)
LECTURE-22
Today’s Agenda
• Polymorphism
2. Late/Dynamic/Runtime Binding
Binding
class Shape {
{ return “Unknown”;
private int dim1; }
private int dim2; public int getDim1()
public Shape(int dim1, int dim2) {
{ return dim1;
this.dim1=dim1; }
this.dim2=dim2; public int getDim2()
} {
public double area() return dim2;
{ }
return 0.0; }
}
public String name()
class Rectangle extends Shape class Triangle extends Shape
{ {
public Rectangle(int l, int b) public Triangle(int b, int h)
{ {
super(l,b); super(b, h);
} }
public double area() public double area()
{ {
return(getDim1()*getDim2()); return(0.5*getDim1()*getDim2());
} }
public String name() public String name()
{ {
return “Rectangle”; return “Triangle”;
} }
} }
class UseShape
{
public static void main(String [ ] args)
{
Shape s;
s=new Rectangle(5,10);
S.o.p(“Shape is ”+s.name());
S.o.p(“Its area is ”+s.area());
s=new Triangle(15,20);
S.o.p(“Shape is ”+s.name());
S.o.p(“Its area is ”+s.area());
}
}
Abstract Classes
and Methods