A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© a1ccwt 中级黑马   /  2015-8-21 20:59  /  190 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

多态:事物存在的多占体现形式。
多态的前提;必须是类与类之间由关系,要么继承,要么实现
多态的体现:父类的引用指向了自己的子类对象
            父类的引用也可以接收自己的子类对象
多态的好处:多态的出现大大的提高程序的扩展性
多态的弊端:提高了扩展性,但是只能使用父类的引用访问父类中的成员。

多态的应用:
  多态的出现代码中的特点
  可以将这两类事物进行抽取
在多态中成员函数的特点
  在编译时期:参阅引用型变量所属的类中是否由调用的方法,如果有,编译通过,没有则失败。
在运行时期,参阅对象所属的类中是否有调用方法。
总结: 成员函数在多态调用时,编译看左边运行看右边
      在多态中成员变量的特点: 无论编译和运行,都参考左边
      在多态中静态成员函数的特点:无论编译和运行,都参考左边。

接口的特点:
1.接口是对外暴露的规则
2.接口是程序的功能扩展
3.接口可以用来多实现
4.类与接口之间是实现关系,而且类可以继承一个类的同事实现多个接口。
5.接口接口之间可以由继承关系。
实例:
  1. class duotai
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 fulei c = new fulei();
  6.                 c.fufangfa(new zi1());
  7.                 new zi1().fangfa3();
  8.                
  9.         }
  10. }

  11. class fulei
  12. {
  13.         public void fufangfa(fu x)
  14.         {
  15.         x.fangfa1();
  16.         x.fangfa2();
  17.         /*为什么不能建立x.fangfa3呢?因为x是父类的符号,
  18.            fangfa3是接口的调用所以不能调用*/
  19.      }

  20. }
  21. interface jiekou1
  22. {
  23.         public abstract void fangfa3();

  24. }
  25. interface jiekou2
  26. {
  27.         public abstract void fangfa3();
  28. }

  29. abstract class fu
  30. {
  31.         public abstract void fangfa1();
  32.         public void fangfa2()
  33.         {
  34.                 System.out.println("Holle Java!");
  35.         }
  36. }
  37. class zi1 extends fu implements jiekou1,jiekou2 //Java不支持多继承但是在接口与接口之间存在多继承
  38. {
  39.         public void fangfa1()
  40.         {
  41.                 System.out.println("OK java");
  42.         }
  43.         public void fangfa2()
  44.         {
  45.         System.out.println("xin Java");
  46.         }
  47.         public void fangfa3()
  48.         {
  49.         System.out.println("jiekou java");
  50.         }
  51. }
复制代码


/*
本程序定义了2个接口,一个父类一个子类。子类用多态的方式调用了父类的方法并复写

一 继承的好处:
1.提高代码的复用性。
2.让类与类之间产生关系,有了这个关系才有了多态的特性。(不要为了获取其他类的功能,而简化代码继承,必须是类与类之间有所属关系才可以继承。)
继承一个体系的功能需要:
1.先查阅体系中父类的描述。
2.通过了解共性功能,就可以知道该体系的基本功能。那么这个体系就可以使用了。

如果子类中出现非私有的同名成员变量时
子类要访问本类中的变量,用this
子类要访问父类中的同名变量,用super
二 重载,覆盖
子类覆盖父类的函数,当子类继承父类,沿袭了父类的功能,到子类中,但是子类虽具有了该功能。但是功能的内容却和父类不一致。这时,还没有必要定义新功能,而是
  使用覆盖特殊保留父类的功能定义,并重写功能内容。

*/

2 个回复

正序浏览
挺好!!!
回复 使用道具 举报
路过是一种习惯
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马