Java学习--封装、继承、多态

  接下来几天会根据http://www.cnblogs.com/chenssy/category/525010.html中讲解的java内容做个学习笔记,在此感谢一下这位大仙!!

一、封装

 对于封装而言,一个对象它所封装的是自己的属性和方法,所以它是不需要依赖其他对象就可以完成自己的操作。

      使用封装有三大好处:

         1、良好的封装能够减少耦合。

         2、类内部的结构可以自由修改。

         3、可以对成员进行更精确的控制。

         4、隐藏信息,实现细节。

二、继承

继承定义了类如何相互关联,共享特性。对于若干个相同或者相识的类,我们可以抽象出他们共有的行为或者属相并将其定义成一个父类或者超类,然后用这些类继承该父类,他们不仅可以拥有父类的属性、方法还可以定义自己独有的属性或者方法。

   1、子类拥有父类非private的属性和方法。

   2、子类可以拥有自己属性和方法,即子类可以对父类进行扩展。

   3、子类可以用自己的方式实现父类的方法。

   4、对于构造器而言,它只能够被调用,而不能被继承。调用父类的构造方法我们使用super()即可

   5、构造器构建过程是从父类“向外”扩散的,也就是从父类开始向子类一级一级地完成构建。编译器会默认给子类调用父类的构造器。

   6、默认调用父类的构造器是有前提的:父类有默认构造器。如果父类没有默认构造器,我们就要必须显示的使用super()来调用父类构造器,否则编译器会报错:无法找到符合父类形式的构造器。

  7、 对于protected而言,它指明就类用户而言,他是private,但是对于任何继承与此类的子类而言或者其他任何位于同一个包的类而言,他却是可以访问的。

三、多态

 1、多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定

 2、但是向上转型存在一些缺憾,那就是它必定会导致一些方法和属性的丢失,而导致我们不能够获取它们。所以父类类型的引用可以调用父类中定义的所有属性和方法,对于只存在与子类中的方法和属性它就望尘莫及了

   3、子类重载父类方法,父类中不存在该方法,向上转型后,父类是不能引用该方法的

   4、子类重写父类方法,指向子类的父类必定是调用该方法

  Java实现多态有三个必要条件:继承、重写、向上转型。

     继承:在多态中必须存在有继承关系的子类和父类。

     重写:子类对父类中某些方法进行重新定义,在调用这些方法时就会调用子类的方法。

     向上转型:在多态中需要将子类的引用赋给父类对象,只有这样该引用才能够具备技能调用父类的方法和子类的方法。

在Java中有两种形式可以实现多态。继承和接口。

原文地址:https://www.cnblogs.com/liutoutou/p/3531081.html