多态:事物存在的多占体现形式。
多态的前提;必须是类与类之间由关系,要么继承,要么实现
多态的体现:父类的引用指向了自己的子类对象
父类的引用也可以接收自己的子类对象
多态的好处:多态的出现大大的提高程序的扩展性
多态的弊端:提高了扩展性,但是只能使用父类的引用访问父类中的成员。
多态的应用:
多态的出现代码中的特点
可以将这两类事物进行抽取
在多态中成员函数的特点
在编译时期:参阅引用型变量所属的类中是否由调用的方法,如果有,编译通过,没有则失败。
在运行时期,参阅对象所属的类中是否有调用方法。
总结: 成员函数在多态调用时,编译看左边运行看右边
在多态中成员变量的特点: 无论编译和运行,都参考左边
在多态中静态成员函数的特点:无论编译和运行,都参考左边。
接口的特点:
1.接口是对外暴露的规则
2.接口是程序的功能扩展
3.接口可以用来多实现
4.类与接口之间是实现关系,而且类可以继承一个类的同事实现多个接口。
5.接口接口之间可以由继承关系。
实例:
- class duotai
- {
- public static void main(String[] args)
- {
- fulei c = new fulei();
- c.fufangfa(new zi1());
- new zi1().fangfa3();
-
- }
- }
- class fulei
- {
- public void fufangfa(fu x)
- {
- x.fangfa1();
- x.fangfa2();
- /*为什么不能建立x.fangfa3呢?因为x是父类的符号,
- fangfa3是接口的调用所以不能调用*/
- }
- }
- interface jiekou1
- {
- public abstract void fangfa3();
- }
- interface jiekou2
- {
- public abstract void fangfa3();
- }
- abstract class fu
- {
- public abstract void fangfa1();
- public void fangfa2()
- {
- System.out.println("Holle Java!");
- }
- }
- class zi1 extends fu implements jiekou1,jiekou2 //Java不支持多继承但是在接口与接口之间存在多继承
- {
- public void fangfa1()
- {
- System.out.println("OK java");
- }
- public void fangfa2()
- {
- System.out.println("xin Java");
- }
- public void fangfa3()
- {
- System.out.println("jiekou java");
- }
- }
复制代码
/*
本程序定义了2个接口,一个父类一个子类。子类用多态的方式调用了父类的方法并复写
一 继承的好处:
1.提高代码的复用性。
2.让类与类之间产生关系,有了这个关系才有了多态的特性。(不要为了获取其他类的功能,而简化代码继承,必须是类与类之间有所属关系才可以继承。)
继承一个体系的功能需要:
1.先查阅体系中父类的描述。
2.通过了解共性功能,就可以知道该体系的基本功能。那么这个体系就可以使用了。
如果子类中出现非私有的同名成员变量时
子类要访问本类中的变量,用this
子类要访问父类中的同名变量,用super
二 重载,覆盖
子类覆盖父类的函数,当子类继承父类,沿袭了父类的功能,到子类中,但是子类虽具有了该功能。但是功能的内容却和父类不一致。这时,还没有必要定义新功能,而是
使用覆盖特殊保留父类的功能定义,并重写功能内容。
*/ |
|