013 Java 多态和内部类

来源:互联网 发布:微信分享链接怎么弄 js 编辑:程序博客网 时间:2024/06/06 03:40

Java多态类和内部类

1.多态

1.1多态的意义:多态就是指多种形态,在Java中主要从两个方面表现:

     同一类型的引用指向不同的对象会有不同的表现如图下:


由上图得:同是职员类型引用,指向不同对象,所干的工作不一样

     同一对象向上造型成不同的类型时具有不同的功能如图下:


由上图得,当类型转换后。其功能也发生了变化

1.2向上造型:是指父类的引用指向子类的引用

可以向上造型类型有:继承的父类和实现的接口

若发生向上造型时,Java编译器会给类型检查查看是否匹配

如图下:


1.3强制类型转换:在实际应用中,需要将父类的类型转换为子类的类型,前提是该变量指向子类的类型

此外,我们还可以通过将变量转换为接口类型,前提是该变量所在的类型实现了该接口,如果不满足以上的两种状况,则会发生ClassCastException如图下


1.4  instanceof关键字,为了应对ClassCastException异常,Java提供instanceof关键字,指变量所指向的对象是否是所指向的类型。

 

2.内部类

2.1定义内部类:是指定义在一个类中的类,叫内部类(Inner),外面的类叫做外部类(Outer),内部类服务于外部类,对外是不可见的,内部类可以直接调用外部类。如图下:


2.2创建内部类对象:内部类对象一般在外部类对象中创建,(构造方法和其他方法),内部类中会有一个隐式的引用指向他所创建的对象,如下代码:



通过上面两图,我们可以知道当创建外部类对象时,外部类构造方法会创建一个内部类对象,同时调用了内部类的方法timeInc;使输出结果为101

2.3定义匿名内部类:如果一段程序需要创建对象(通常为实现某个接口或者继承父类),在使用后其就不再使用了,在这样的情况下,我们就可以使用匿名内部类,格式图下:

代码如下:


上述代码中,实现了Action的方法,并调用了execute方法



0 0