oop_day07_多态_20150815

来源:互联网 发布:杭州mac专柜 编辑:程序博客网 时间:2024/06/06 21:02

oop_day07_多态_20150815


1.多态:多种形态

   1)多态的意义:

      1.1)同一类型的引用指向不同的对象时,有不同的实现

            ---------cut()、run()-----行为的多态

      1.2)同一个对象被造型为不同的类型时,有不同的功能

            ---------我、水---------对象的多态

   2)向上造型:

      2.1)父类型的引用指向子类的对象

      2.2)能向上造型的类型有: 父类、所实现的接口

      2.3)能点出来什么,看引用的类型

   3)强制类型转换,成功的情况有两种:

      3.1)引用所指向的对象,就是该类型

      3.2)引用所指向的对象,实现了该接口

   4)强转失败会发生类型转换异常(ClassCastException)

      强转之前最好通过instanceof来判断引用所指向的对象是否是该类型,

      instanceof返回true或false,强转成功的条件就是instanceof为true的条件


代码示例:

package oo.day07;//向上造型public class UpDemo {public static void main(String[] args) {Boo o1 = new Coo(); //向上造型Coo o2 = (Coo)o1; //正确,o1所指向的对象就是Coo类型Inter3 o3 = (Inter3)o1; //正确,o1所指向的对象实现了Inter3接口//Doo o4 = (Doo)o1; //类型转换异常(ClassCastException)if(o1 instanceof Doo){Doo o5 = (Doo)o1;}}}interface Inter3{}class Boo{}class Coo extends Boo implements Inter3{}class Doo extends Boo{}


0 0
原创粉丝点击