Java编程思想学习(六) 多态

1、Java语言的三大特性:继承、封装和多态。

        继承:复用类的一种方法,可以简省很多代码;

        封装:通过合并特征和行为来创建新的数据类型。【这种“数据类型”跟Java本身提供的8大“基本数据类型”的地位完全相同。Java通过封装这种方式来扩充数据类型。】

        多态:消除创新的数据类型之间的耦合关系。

2、前期绑定:static和final方法都是前期绑定(在编译时绑定和执行);

3、后期绑定:Java中除了static和final方法,都是后期绑定(前面提到过,private方法属于final方法)。

4、多态性:

        只有后期绑定的方法具有多态性【其他的,如:前期绑定方法、域(字段)等不具有多态性】;

        换句话说就是,多态性是面向对象的特性(三大特性之一)。而Java语言并不是一门完全的或者说纯粹的面向对象语言,像静态的这些就是反对象的东西。

5、构造器初始化

        一定会调用父类的构造器,先为父类初始化,获取父类的对象(子对象),再进行自身初始化。

6、转型:

        向上转型:会丢失新方法;

        向下转型:需要作类型检查。

例子:

 1 package lkl;
 2 
 3 public class Cycle {
 4        public int wheels    (){
 5            return 0;
 6        }
 7 }
 8 
 9 public class Tricycle  extends  Cycle{
10          public int wheels(){
11              return 3;
12          }
13 }
14 
15 public class BiCycle extends Cycle{
16      public int wheels(){
17          return 2;
18      }
19 }
20 
21 public class Unicycle extends Cycle{
22        public int wheels(){
23            return 1;
24        }
25 }
26 
27 public class RideTest {
28          public int wheels(Cycle cy){
29              return cy.wheels();
30          }
31          public static void main(String[] args){
32              RideTest rt = new RideTest();
33              ///根据传入的不同子类表现不同的行为,称为多态 
34              System.out.println(rt.wheels(new Unicycle()));
35              System.out.println(rt.wheels(new BiCycle()));
36              System.out.println(rt.wheels(new Tricycle()));
原文地址:https://www.cnblogs.com/benchao/p/5263149.html