收藏 分享(赏)

抽象类和抽象方法.doc

上传人:wspkg9802 文档编号:6928759 上传时间:2019-04-27 格式:DOC 页数:4 大小:26KB
下载 相关 举报
抽象类和抽象方法.doc_第1页
第1页 / 共4页
抽象类和抽象方法.doc_第2页
第2页 / 共4页
抽象类和抽象方法.doc_第3页
第3页 / 共4页
抽象类和抽象方法.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

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

2、具体实现。抽象方法必须重写实现其具体的功能。【TestAbstract.java】package day7am;public abstract class TestAbstract public abstract void test();/含有抽象方法的类一定是抽象类。public static void main(String args) 三、抽象方法的继承与实现当某类继承抽象类时,如果其本身不是抽象类时,则必须实现所继承抽象类中的抽象方法。如,具有启动(startup)方法的抽象车辆类Car,其每中子类都必须实现其自己的、专属于某种类型车辆的具体启动(startup)方法,下边例子就说明了

3、。【TestAbstract.java】package Pra;/定义抽象类Carabstract class Car /定义抽象方法startUppublic abstract void startUp();/定义抽象类Audi并使该类继承自 Carabstract class Audi extends Car/定义抽象方法turbopublic abstract void turbo();/定义非抽象类Audi_A6继承自Audiclass Audi_A6 extends Audi/实现startUp方法public void startUp()System.out.println(“调用

4、了奥迪A6的启动功能!“ );/实现turbo方法public void turbo()System.out.println(“调用了奥迪A6的加速功能!“ );/定义非抽象类Audi_A8继承自Audiclass Audi_A8 extends Audi/实现startUp方法public void startUp()System.out.println(“调用了奥迪A8的启动功能!“ );/实现turbo方法public void turbo()System.out.println(“调用了奥迪A8的加速功能!“ );public class TestAbstractpublic stat

5、ic void main(String args)/创建Audi_A6 对象并使该类引用 a6指向该对象Audi_A6 a6=new Audi_A6();/调用Audi_A6 对象中的方法a6.startUp();a6.turbo();/创建Audi_A8 对象并使该类引用 a8指向该对象Audi_A8 a8=new Audi_A8();/调用Audi_A8 对象中的方法a8.startUp();a8.turbo();程序运行结果:-调用了奥迪A6的启动功能!调用了奥迪A6的加速功能!调用了奥迪A8的启动功能!调用了奥迪A8的加速功能!-上面的例子里定义了4个类,其中 Car和Audi 为抽象

6、类,他们分别代表轿车和奥迪轿车,故不适具体类,因为轿车和奥迪轿车还有很多子类。四、另外要注意的是,方法永远不能同时标示为abstract和final ,因为abstract修饰的方法必须要重写实现其方法,而final是阻止重写的。当然private和abstract 也不能同时修饰方法,因为private阻止继承,也就阻止了重写实现,这与abstract也是相违背的。补:abstract不能和static同时使用以下是关于抽象类和方法在银行系统(部分)的简单应用:【Account.java】package day7am;/模板设计模式public abstract class Account

7、private int id;private double bounds=1000;/金额public Account()public abstract double getAll();public int getId() return id;public void setId(int id) this.id = id;public double getBounds() return bounds;public void setBounds(double bounds) this.bounds = bounds;【HAccount.java】package day7am;public clas

8、s HAccount/活期类 extends Accountpublic double getAll()return this.getBounds()*0.03;public static void main(String args)Account a=new DAccount();/System.out.println(a.getAll();class DAccount extends Account/定期类public double getAll()return this.getBounds()*0.05; -程序运行结果:50.0-【OpAccount.java】package day7am;public class OpAccount /注销用户/开闭原则,对扩展代码开放,对修改现有代码关闭public double deleteAccount(Account a)return a.getBounds()+a.getAll();public static void main(String args) OpAccount op=new OpAccount();System.out.println(op.deleteAccount(new DAccount();-程序运行结果:1050.0-

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报