java中的抽象類的作用


抽象函數的作用有很多,我就舉一個例子,(mars老師的例子):

打印機:

父類---Printer

子類---HBPrinter

子類----CanonPrinter

測試類----Test

//定義一個打印機類
abstract class Printer{
//定義三個成員函數
void open(){
System.out.println("open");
}

void close(){
System.out.println("close");
}
abstract void print(); 

}


//定義一個HB(惠普)打印機
class HBPrinter extends Printer{
//復寫Printer的print
void print(){
System.out.println("我是惠普打印機");
}
}


//定義一個佳能打印機
class CanonPrinter extends Printer{
//復寫Printer的print方法
void print(){
System.out.println("我是佳能打印機");
}
}



//測試函數
class Test{
public static void main(String args [] ){
//向上轉型
Printer p1 = new HBPrinter();
p1.open();
p1.print();
p1.close();

Printer p2 = new CanonPrinter();
p2.open();
p2.print();
p2.close();
}
}


結果


F:\work\src>javac *.java


F:\work\src>java Test
open
我是惠普打印機
close
open
我是佳能打印機
close


F:\work\src>




 如果父類Printer沒有用abstract其方法print也沒用abstract,那么當其子類有很多時,突然某一個子類忘記復寫print()方法,

那么問題就出現了:可以正常運行,但是打印有問題,不知道哪里出錯了,

 而當有用抽象,那么其子類忘記復寫時,就會出錯,提示哪一個有問題,就可以bug


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM