Java作為一種面向?qū)ο缶幊陶Z言,其多態(tài)性和接口機(jī)制被廣泛使用。下面通過一個(gè)例題來介紹Java中的多態(tài)和接口的應(yīng)用。
interface Shape{
double calculateArea();
}
class Circle implements Shape{
private double radius;
public Circle(double r){
radius = r;
}
@Override
public double calculateArea(){
return Math.PI * radius * radius;
}
}
class Rectangle implements Shape{
private double width, height;
public Rectangle(double w, double h){
width = w;
height = h;
}
@Override
public double calculateArea(){
return width * height;
}
}
public class Test{
public static void main(String[] args){
Shape[] shapes = new Shape[2];
shapes[0] = new Circle(2);
shapes[1] = new Rectangle(3, 4);
for(Shape shape : shapes){
System.out.println("Area is " + shape.calculateArea());
}
}
}
本例中,定義一個(gè)接口Shape,該接口中有一個(gè)計(jì)算面積的方法。在Circle類和Rectangle類中實(shí)現(xiàn)該接口的方法,并分別計(jì)算圓和矩形的面積。在Test類中創(chuàng)建Shape接口類型的數(shù)組,并將Circle和Rectangle實(shí)例分別賦值給數(shù)組元素。遍歷數(shù)組并調(diào)用calculateArea方法,輸出對(duì)應(yīng)圖形的面積。
這樣的應(yīng)用可以充分體現(xiàn)Java中的多態(tài)和接口機(jī)制。通過Shape接口來定義圖形的公共方法,而具體的圖形類只需要實(shí)現(xiàn)該接口,并根據(jù)自身特點(diǎn)來實(shí)現(xiàn)方法,避免了代碼的冗余。同時(shí),在調(diào)用calculateArea方法時(shí),可以根據(jù)具體實(shí)現(xiàn)類的不同來調(diào)用不同的方法實(shí)現(xiàn),即多態(tài)性。