抽象类和抽象方法

抽象类和抽象方法

ID:6706612

大小:26.00 KB

页数:4页

时间:2018-01-23

抽象类和抽象方法_第1页
抽象类和抽象方法_第2页
抽象类和抽象方法_第3页
抽象类和抽象方法_第4页
资源描述:

《抽象类和抽象方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、抽象类和抽象方法一、定义:java中可以定义的一些不含方法体的方法,它的方法体的实现交给该类的子类根据自己的情况去实现,这就是抽象方法。包含抽象方法的类就叫做抽象类。一个抽象类可以有一个或多个抽象方法。二、抽象规则:1、抽象类和方法必须用abstract来修饰;2、抽象类不能被实例化;3、抽象方法只需声明,无需实现,抽象方法一定调用子类重写后的非抽象的方法;4、抽象类有构造但不能被调用;5、含有抽象方法的类必须声明为抽象类,抽象类的子类必须覆盖所有的抽象方法后才能被实例化,否则这个类还是个抽象类。注意:抽象方法不能为private的,因为抽象方法没有具体实现,需要在子类中继承并重

2、写来实现具体实现。抽象方法必须重写实现其具体的功能。【TestAbstract.java】packageday7am;publicabstractclassTestAbstract{publicabstractvoidtest();//含有抽象方法的类一定是抽象类。publicstaticvoidmain(String[]args){}}三、抽象方法的继承与实现当某类继承抽象类时,如果其本身不是抽象类时,则必须实现所继承抽象类中的抽象方法。如,具有启动(startup)方法的抽象车辆类Car,其每中子类都必须实现其自己的、专属于某种类型车辆的具体启动(startup)方法,下边例

3、子就说明了。【TestAbstract.java】packagePra;//定义抽象类CarabstractclassCar{//定义抽象方法startUppublicabstractvoidstartUp();}//定义抽象类Audi并使该类继承自CarabstractclassAudiextendsCar{//定义抽象方法turbopublicabstractvoidturbo();}//定义非抽象类Audi_A6继承自AudiclassAudi_A6extendsAudi{//实现startUp方法publicvoidstartUp(){System.out.println

4、("调用了奥迪A6的启动功能!!!");}//实现turbo方法publicvoidturbo(){System.out.println("调用了奥迪A6的加速功能!!!");}}//定义非抽象类Audi_A8继承自AudiclassAudi_A8extendsAudi{//实现startUp方法publicvoidstartUp(){System.out.println("调用了奥迪A8的启动功能!!!");}//实现turbo方法publicvoidturbo(){System.out.println("调用了奥迪A8的加速功能!!!");}}publicclassTestA

5、bstract{publicstaticvoidmain(String[]args){//创建Audi_A6对象并使该类引用a6指向该对象Audi_A6a6=newAudi_A6();//调用Audi_A6对象中的方法a6.startUp();a6.turbo();//创建Audi_A8对象并使该类引用a8指向该对象Audi_A8a8=newAudi_A8();//调用Audi_A8对象中的方法a8.startUp();a8.turbo();}}程序运行结果:-----------------------------调用了奥迪A6的启动功能!!!调用了奥迪A6的加速功能!!!调用

6、了奥迪A8的启动功能!!!调用了奥迪A8的加速功能!!!-----------------------------上面的例子里定义了4个类,其中Car和Audi为抽象类,他们分别代表轿车和奥迪轿车,故不适具体类,因为轿车和奥迪轿车还有很多子类。四、另外要注意的是,方法永远不能同时标示为abstract和final,因为abstract修饰的方法必须要重写实现其方法,而final是阻止重写的。当然private和abstract也不能同时修饰方法,因为private阻止继承,也就阻止了重写实现,这与abstract也是相违背的。补:abstract不能和static同时使用以下是关

7、于抽象类和方法在银行系统(部分)的简单应用:【Account.java】packageday7am;//模板设计模式publicabstractclassAccount{privateintid;privatedoublebounds=1000;//金额publicAccount(){}publicabstractdoublegetAll();publicintgetId(){returnid;}publicvoidsetId(intid){this.id=id;}publicd

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。