public class AbstractTest2 {
public static void main(String[] args)
{
Shape shape = new Triangle (10 , 5); //传递参数给构造函数
int area = shape.computeArea();
System.out.println("triangle " + area);
shape = new Rectangle(10 , 10);
area = shape.computeArea();
System.out.println("rectangle " + area);
}
}
abstract class Shape
{
public abstract int computeArea(); //计算形状面积,定义为抽象函数,函数方法的实现由子类自己根据需要来实现。
}
class Triangle extends Shape
{
int width;
int height;
public Triangle(int width, int height) //构造函数赋初值
{
this.width = width; //形参与实参相同是要用this指针
this.height = height;
}
public int computeArea()
{
return (width * height)/2;
}
}
class Rectangle extends Shape
{
int width;
int height;
public Rectangle(int w , int h)
{
this.width = w; //可以定义成不同的符号,这样width前面可以加this指针也可以不加
height = h;
}
public int computeArea()
{
return width * height ;
}
}