1. 程式人生 > >【奔跑的菜鳥】Java中的抽象類

【奔跑的菜鳥】Java中的抽象類

不過是在Java中還是在C/C++中,都有抽象類的概念。不過關鍵字不同,Java中抽象類的關鍵字是abstract。同樣的道理,既然有抽象類,那麼就有抽象的方法(有申明無實現)。抽象方法的關鍵字也是abstract。抽象類不可以例項化,用來生成子類。抽象方法一定只能在抽象類中出項,但是抽象類中不一定有抽象方法。抽象類的子類要對抽象類中每一個抽象方法進行實現,要不然子類依然是抽象類,要加abstract。

public class Test
{
	public static void main(String[] args)
	{
		MultiAngle s = new TriAngle(2,5);
		int area = s.computeArea();
		System.out.println(area);
		System.out.println("---------------");
		s = new RectAngle(2,5);
		area = s.computeArea();
		System.out.println(area);
		System.exit(0);
		
	}
}

abstract class MultiAngle
{
	abstract int computeArea();
}

class TriAngle extends MultiAngle
{
	int hight,wight;
	
	TriAngle(int hight,int wight)
	{
		this.hight = hight;//this用於表示物件本身,this。hight表示對類成員中的hight的引用
		this.wight = wight;
	}
	
	int computeArea()
	{
		return hight*wight/2;
	}
}


class RectAngle extends MultiAngle
{
	int hight,wight;
	
	RectAngle(int hight,int wight)
	{
		this.hight = hight;//this用於表示物件本身,this。hight表示對類成員中的hight的引用
		this.wight = wight;
	}
	
	int computeArea()
	{
		return hight*wight;
	}
}


  
  
  






執行結果為:
5
---------------
10