黑马程序员_java面向对象相关 个人理解

来源:互联网 发布:如何评价列宁 知乎 编辑:程序博客网 时间:2024/05/16 19:18

------- android培训、java培训、期待与您交流! ----------

以下仅为个人平时学习笔记,可能有有错误的地方,希望有看到者提出来,共同讨论,谢谢!

1.继承

  并不仅仅是为了简化代码,提高复用而继承。更重要的原因是本身类与类之间就有一定的关系,可以通过继承更好的表示出类与类本来的关系(有了关系,进而出现多态)。(类本来就是现实中具体事物抽象出来的)
  将各个子类共性的地方提取出来,成立父类。 


2.抽象类
  抽象方法必须放在抽象类中,但抽象类中不一定都是抽象方法。
  子类继承抽象类后,必须覆写所有的抽象方法后才能建立子类对象调用。如果子类只是覆写了所继承的抽象类中的部分方法,那该子类必须仍为抽象类。
  子类中一些共有的功能,但是具体实现方式不同,于是抽取出来,放入抽象类。所以抽象类对于子类也有一些规范作用。


  用处:当某个类定义了一个方法供子类调用,但是方法中有一部分功能是不能具体确定的,所以这一部分以另一个方法来封装。但是不同子类,该功能具体实现内容不同,所以需要子类分别覆写该方法。(尤其是供子类调用的方法可以设计成final,即,只能是如此实现,不能被子类覆写)此时,用抽象类好处尤为突出。(而且抽象方法要求子类必须根据自己情况覆写,手机开发尤为常见)--模板设计模式(覆写方法不一定是抽象的,可以有一个默认实现方式)
  当某个功能不确定时候,就用抽象。


3.接口
  接口中的成员都是public的,变量而且都是final的,方法都是抽象的。
  实现接口的子类需要将接口中的抽象方法都覆写后才可以实例化,否则子类中就包含抽象方法,相当于了抽象类了。
  接口与接口之间也是继承关系(用extends而不是用implements),而且接口支持多继承。
  接口用途:a.接口是对外暴露的规则。功能实现的框架。
  b.接口是程序的功能扩展。
  c.降低了耦合性。
  作为功能扩展应用接口。此时,接口用于扩展从共有类中无法继承到,而某些实体确实包含的功能。


****接口的出现降低了耦合性,增强了功能的扩展性,提供了规则;多态的应用增强了程序的扩展性。


****接口就像是调用者与被调用者中间的一个媒介,起衔接作用。


*******************************多态*********************************************

多态:可以理解为实物存在的多种体现形态。
  (貌似多态就是事物子类或是下级的细分,可以分出多种种类,看起来就是它的多种形态)。
  函数的重载与覆盖也是多态。
  
  1.多态的体现
   a.父类引用指向子类对象。
   b.父类的引用也可以接收自己的子类对象。
  2.多态的前提
   必须是类与类之间有父子关系(继承或是实现)。
   父类引用指向子类对象,但在使用子类对象方法功能时,必须是自己中也有该方法(功能)的定义。
  3.多态的好处
   a.多态的出现大大的提高了程序的扩展性。
  4.多态的弊端
   提高了扩展性,但是只能使用父类的引用访问父类中已有的成员。 


  父类引用指向子类对象:Animal ac = new Cat();又称向上转型,
  Cat c = (Cat)ac;向下转型(必须指向了子类对象);
  if(c instanceof Cat) if(c instanceof Animal)


多态中的静态方法:
  无论编译还是运行,静态方法都只是根据声明的类名而定。

   
原创粉丝点击