JAVA8

来源:互联网 发布:淘宝网打底羊毛衫 编辑:程序博客网 时间:2024/06/03 11:15
多态

1理解多态的概念

Java中引用类型变量有两个类型:一个是编译时类型,一个是运行时类型。编译时类型由声明该变量使用的类型决定,运行时类型由实际赋给该变量的对象决定。那么如果运行时类型和编译时类型不一致,这就是多态。

 

                  Java中多态可以分为两类:

                  1.方法的重载、重写

                          ◆重载:静态多态(编译时多态)

                          ◆重写:动态多态(运行时多态)

 

                  2.对象的多态。

                          ◆向上转型: 子类对象----》父类对象

                                                     格式: 父类 父类对象 = 子类对象

 

                          ◆向下转型: 父类对象----》子类对象(向下转型前,一定要先完成一次向上转型)

                                                     格式: 子类 子类对象 = (子类)父类对象

 

2掌握两种形式的多态

            ★1.方法的重载、重写

◆重载:方法重载值得是在同一个类中,多个方法名相同,参数列表不同(个数、类型、顺序),这就是重载。

 

案例:

 

◆重写:(覆写,覆盖) 方法重写值得是在继承中,如果父类中某个方法不能满足子类的需求,子类可以重写父类的这个方法,这就是方法重写。

 

案例:

Object类中toString()和equals()是很经典的重写,很多类中都重写了这两个方法。Eg:String 中….

 

案例:

 

★2.对象的多态

◆向上转型: 子类对象----》父类对象

         类似于基本数据类型的自动类型转换:

                  int a = 10;

                  double b =a;//自动类型转换

 

说明:

对象f表面上看是Father类对象,但是运行时调用say()实际是Son类的。所以f对象编译时类型是Father,运行时类型是Son。这就是多态。

                  ◆向下转型: 父类对象----》子类对象(向下转型前,一定要先完成一次向上转型)

                          类似于基本数据类型的强制类型转换:

                                   doublea = 10.5;

                                   intb = (int)a;