接口和多态性优秀PPT.ppt
《接口和多态性优秀PPT.ppt》由会员分享,可在线阅读,更多相关《接口和多态性优秀PPT.ppt(44页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、接口和多态性你现在浏览的是第一页,共44页5.1 多态性多态性概念:在程序中同一符号或名字在不同情况下具有不同的语义解释,其有两种基本形式:编译时多态性:在程序编译时可确定的多态性,由重载机制实现运行时多态性:指程序动态运行时才可确定的多态性,由继承继承结合动态绑定动态绑定实现.你现在浏览的是第二页,共44页5.1 多态性绑定绑定 将一个名字与它的特性相关联的过程.静态绑定就是绑定过程在编译时进行,动态绑定就是绑定过程在运行时进行.动态绑定动态绑定 先设计一个类层次,子类重定义超类的某些方法,然后使用超类类型的对象引用调用这些方法超类类型的对象引用调用这些方法,JVM根据这些对象引用的动态类型
2、选择所调用方法的版本,即如果该对象引用的是超类的对象实例,则调用超类定义的方法,如果引用的是子类的对象实例,则调用子类定义的方法.你现在浏览的是第三页,共44页public class SuperClass public void firstMethod()secondMethod();public void secondMethod()System.out.println(“SuperClass.secondMethod()”);public class SubClass extends SuperClass public void secondMethod()System.out.prin
3、tln(“SubClass.secondMethod()”);则下述语句运行结果:SubClass subObj=new SubClass();SuperClass superRef=subObj;superRef.firstMethod();输出结果:SubClass.secondMethod()你现在浏览的是第四页,共44页5.2 抽象类概念概念:只能被继承和扩充而不能创建自己的对象实例的类叫做抽象类。通常用做超类.通过关键字通过关键字abstract abstract 进行标记将类声明为抽象进行标记将类声明为抽象public abstract class Drawing public a
4、bstract void drawDot(int x,int y);public void drawLine(int x1,int y1,int x2,int y2)/draw using the drawDot()method/repeatedly.一个一个abstract abstract 类可以包含非抽象方法和变量类可以包含非抽象方法和变量抽象类只有被派生才能创建对象实例抽象类只有被派生才能创建对象实例.抽象方法只有被重定义才能给出其方法体抽象方法只有被重定义才能给出其方法体.你现在浏览的是第五页,共44页例例:某公司要编写雇员工资支付程序某公司要编写雇员工资支付程序,不同的雇员按不同的
5、方式不同的雇员按不同的方式支付工资支付工资:经理经理(Manager)每月获得固定工资每月获得固定工资;销售员销售员(Salesman)每月基本工资每月基本工资+销售提成销售提成;一般工人一般工人(Worker)按每月工作的天数计算工资按每月工作的天数计算工资你现在浏览的是第六页,共44页Employee-namegetName()computeSalary()Manager-namemonthSalarygetName()computeSalary()Salesman-namebaseSalaryCommisionquantitygetName()computeSalary()Worker-
6、namedailySalarydaysgetName()computeSalary()你现在浏览的是第七页,共44页/Employee.javapublic abstract class Employee private String name;public Employee(String name)this.name=name;public String getName()return name;/计算雇员月工资的抽象方法 public abstract double computeSalary();你现在浏览的是第八页,共44页class Manager extends Employee
7、private double monthSalary;public Manager(String name,double monthSalary)super(name);/调用超类构造函数 this.monthSalary=monthSalary;/重定义超类的抽象方法computeSalary public double computeSalary()return monthSalary;你现在浏览的是第九页,共44页 class Salesman extends Employee private double baseSalary;/基本工资 private double commisio
8、n;/每件产品提成额 private int quantity;/销售的产品数量 public Salesman(String name,double baseSalary,double commision,int quantity)super(name);this.baseSalary=baseSalary;mision=commision;this.quantity=quantity;public double computeSalary()return baseSalary+commision*quantity;你现在浏览的是第十页,共44页class Worker extends Em
9、ployee private double dailySalary;/每天工资额 private int days;/每月工作的天数 public Worker(String name,double dailySalary,int days)super(name);this.dailySalary=dailySalary;this.days=days;public double computeSalary()return dailySalary*days;你现在浏览的是第十一页,共44页class Demo public static void main(String args)/超类数组,记
10、录各种类型雇员 Employee data=new Employee4;data0=new Manager(Manager,10000);data1=new Salesman(Salesman,3000,200,12);data2=new Worker(Worker Zhang,200,25);data3=new Worker(Worker Li,250,26);displaySalary(data);public static void displaySalary(Employee data)for(int i=0;i程序包程序包(package)=编写大型编写大型java程序程序 弥补了类
11、的单继承不能满足功能扩充的不足弥补了类的单继承不能满足功能扩充的不足你现在浏览的是第十四页,共44页5.3 接口接口的概念类的接口类的接口 供他类可访问的数据成员和方法成员类的实现接口类的实现接口 使用者与实现者之间的约束抽象-相当于纯抽象类 接口必须通过类来实现 接口提供一个观察类的角度一个类可以实现多个接口-多角度观察同一个事物一个接口类可以为多个类实现-同一个角度观察不同事物Java API标准接口 Serializable(可序列化的),Cloneable(可克隆的)MouseListener(鼠标监听者)LayoutManager(布局管理者)你现在浏览的是第十五页,共44页5.3
12、接口接口的声明/Controllable.java public interface Controllable int OFF=0;/静态变量,要初始化 int ON=1;void setPower(int on_or_off);boolean isPowerOn();接口数据成员接口数据成员只能是公有的静态只能是公有的静态常量数据常量数据,可用可用public,static,final来修饰来修饰接口成员方法只能是接口成员方法只能是公有抽象方法公有抽象方法,只能只能用用public,abstract来修饰来修饰你现在浏览的是第十六页,共44页Pet示例假设有一个超类FourLegged,Ca
13、t/Duck/Dog都继承它 又同时要扩展Pet用C+,可以多重继承用JAVA接口实现示例你现在浏览的是第十七页,共44页interface Pet abstract public void speak();class Dog implements Petpublic void speak()System.out.println(Woof);你现在浏览的是第十八页,共44页class Cat implements Petpublic void speak()System.out.println(Meow);class Duck implements Petpublic void speak()
14、System.out.println(Quack);你现在浏览的是第十九页,共44页public class Animalspublic static void main(String agrs)Pet myPets=new Pet4;myPets0=new Duck();myPets1=new Cat();myPets2=new Duck();myPets3=new Dog();for(int index=0;index4;index+)myPetsindex.speak();你现在浏览的是第二十页,共44页接口的使用声明希望一个或更多个类实现的方法展示对象的编程接口而不显示类的内部主体结构
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 接口 多态性 优秀 PPT
限制150内