abstract类与abstract方法,abstract是什么意思,Java中abstract怎么使用(四)

发布时间:2016-04-12 16:00:22 来源:大铁棍娱乐网

《abstract类与abstract方法,abstract是什么意思,Java中abstract怎么使用(四)》是由大铁棍娱乐网(www.datiegun.com)编辑为你整理收集在【教育学习】栏目,于2016-04-12 16:00:22整理发布,希望对你有所帮助,可及时向我们反馈。

  另外一个抽象类的使用方法是我最近在C++的项目中学习到的。

  package com.pamigo.shp; abstract class Shape{ public abstract void draw(); public abstract void reDraw(); public void erase(){ doErase(); Window window=WindowContainer.getCurrentWindow(); window.clean(); } protected abstract void doErase(); }

  class Triangle extends Shape{ public void draw(){...} public void reDraw(){...} protected void doErase(){ MusicBox.sing("Amazing Grace"); } } class Circle extends Shape{ public void draw(){...} public void reDraw(){...} protected void doErase(){ WindowBox.popUp("I'll go!"); } }

  package com.pamigo.clnt; class User{ public static void main(String[] args){ Shape shp=new Triangle(); shp.draw(); shp.erase(); } }//注意我的权限修饰符

  我想表达的意思就是,对外界来说,User只能看到Shape的erase方法。erase方法必须要做Window的清除工作,但为了给子类提供机会做自己的清除工作,所以设计了

  protected abstract void doErase();因为是protected权限,所以User是看不见的。不管是Circle还是Triangle,都会有自己的doErase方法。并且他们都会在用户调用shp.erase();时被正确的调用并且不用关心Window是如何被清除的!


推荐阅读