java对象实例_深入理解Java对象实例生成的例子!(转)
深入理解Java對象實(shí)例生成的例子!(轉(zhuǎn))[@more@]代碼如下:
class A {
public int Avar;
public A() {
System.out.println("AAA");
doSomething();
}
public void doSomething() {
Avar = 1111;
System.out.println("A.doSomething()");
}
}
public class B extends A {
public int Bvar = 2222;
public B() {
System.out.println("BBB");
doSomething();
System.out.println("Avar=" + Avar);
}
public void doSomething() {
System.out.println("Bvar=" + Bvar);
}
public static void main(String[] args) {
new B();
}
}
講解:
順序是這樣得,首先生成B就得先生成A,
所以調(diào)用A的構(gòu)造器,輸出AAA,
然后調(diào)用方法dosomething,!!!
注意:A的該方法被B覆蓋,
而你生成的是B的對象,
所以它調(diào)用B的方法,
由于BVAR目前沒有給定值,
所以自動初始化為0,
然后生成B對象,
先初始化變量BVAR,
然后調(diào)用構(gòu)造器輸出BBB,
然后調(diào)用方法,
這時BVAR已初始化,
所以輸出BVAR=2222,
而對象A中變量AVAR由于沒有調(diào)用對象A的方法dosomething,
所以其值為0,則輸出0
全部輸出就如下:
AAA
Bvar=0
BBB
Bvar=2222
Avar=0
注意:初始化順序,當(dāng)繼承時,先生成超類對象,生成對象時,先生成靜態(tài)變量,然后是一般變量,然后調(diào)用構(gòu)造器!當(dāng)所以超類對象生成后,生成本對象,順序一樣! 當(dāng)方法被覆蓋時,調(diào)用目前對象的方法!這得注意。
來自 “ ITPUB博客 ” ,鏈接:http://blog.itpub.net/10617542/viewspace-962838/,如需轉(zhuǎn)載,請注明出處,否則將追究法律責(zé)任。
總結(jié)
以上是生活随笔為你收集整理的java对象实例_深入理解Java对象实例生成的例子!(转)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python图片读取优化_python读
- 下一篇: java美元兑换,(Java实现) 美元