java 5 新特性 for_java5 新特性
java1.5?放寬了對類繼承過程中方法覆蓋的限制,在此之前,除必須一致的方法名及參數列表外,返回類型也必須相同
而?java1.5?以后,子類中覆蓋的方法的返回類型可以是父類中被覆蓋方法返回類型的子類
這個小小的變化讓?java?的面向對象編程更加靈活
package com.techlog.test.service;
/**
* just for test
* Created by techlog on 2016/5/21.
*/
public class ForTest {
public static void main(String[] argv) {
A a = new B();
C c = a.func();
System.out.println(c.getI());
}
}
class A {
public C func() {
C c = new C(5);
System.out.println("A func");
return c;
}
}
class B extends A {
@Override
public D func() {
D d = new D(6);
System.out.println("B func");
return d;
}
}
class C {
protected int i;
public int getI() {
System.out.println("C getI");
return i;
}
public C(int i) {
this.i = i;
}
}
class D extends C {
@Override
public int getI() {
System.out.println("D getI");
return i;
}
public D(int i) {
super(i);
}
}
打印出了:
B?func
D?getI
6
我們看到,首先打印出的?"B?func"?說明繼承自?A?類的?B?類成功覆蓋了?A?類中的?func?方法,盡管?B?類?func?方法返回類型是父類被覆蓋方法返回類型的子類
然后,打印出了?"D?getI",這是在?main?方法中調用?c.getI()?方法打印的,這說明,B?類中覆蓋的?func?方法確實返回了?D?類型對象
總結
以上是生活随笔為你收集整理的java 5 新特性 for_java5 新特性的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 广发车行易联名信用卡一般额度多少?学会几
- 下一篇: java Ajax cache_ajax