?? planegraphics1.java
字號(hào):
//【例3.8】 抽象類與抽象方法。
public abstract class PlaneGraphics1 //平面圖形類,抽象類
{
private String shape; //形狀
public PlaneGraphics1(String shape)//構(gòu)造方法,不能是抽象方法
{
this.shape = shape;
}
public PlaneGraphics1()
{
this("未知");
}
public abstract double area(); //計(jì)算面積,抽象方法,分號(hào)";"必不可少
public void print() //顯示面積,非抽象方法
{
System.out.println(this.shape+"面積為 "+this.area());
}
}
class PlaneGraphics1_ex
{
public static void main(String args[])
{
PlaneGraphics1 g1 = new Rectangle1(10,20);//獲得子類對(duì)象,長方形
g1.print(); //print()不是運(yùn)行時(shí)多態(tài)性,其中調(diào)用的area()表現(xiàn)運(yùn)行時(shí)多態(tài)性
g1 = new Rectangle1(10); //正方形
g1.print();
g1 = new Ellipse1(10,20); //橢圓
g1.print();
g1 = new Ellipse1(10); //圓
g1.print();
}
}
/*
程序運(yùn)行結(jié)果如下:
長方形面積為 200.0
正方形面積為 100.0
橢圓面積為 628.3185307179587
圓面積為 314.1592653589793
*/
/*
程序正確
1、抽象類也可以不包含抽象方法,此時(shí)仍然不能創(chuàng)建對(duì)象。例如,
public abstract class Shape //圖形類,抽象類
{
public void finalize() //抽象類中可以有析構(gòu)方法
{
}
public double area() //計(jì)算面積,非抽象方法,必須有方法體
{
return 0;
}
public void print()
{
}
}
2、抽象類中可以包含main方法。例如,
public static void main(String args[])
程序錯(cuò)誤:
1、構(gòu)造方法不能被聲明為抽象方法
public abstract Shape(); //編譯錯(cuò),modifier abstract not allowed here
2、不能創(chuàng)建抽象類的對(duì)象
class Shape1_ex
{
public static void main(String args[])
{
Shape1 s1 = new Shape1(); //編譯錯(cuò),Shape1 is abstract; cannot be instantiated
s1.print();
}
}
*/
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -