欢迎来到天天文库
浏览记录
ID:6706612
大小:26.00 KB
页数:4页
时间:2018-01-23
《抽象类和抽象方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
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
此文档下载收益归作者所有