深入理解Java对象实例生成的例子!

来源:互联网 发布:网络介质控制协议 编辑:程序博客网 时间:2024/04/29 21:53
<script type="text/javascript">google_ad_client = "pub-8800625213955058";/* 336x280, 创建于 07-11-21 */google_ad_slot = "0989131976";google_ad_width = 336;google_ad_height = 280;//</script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>代码如下:
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,所以调用A的构造器,输出AAA, 然后调用方法dosomething,!!!注意:A的该方法被B覆盖,而你生成的是B的对象,所以它调用B的方法,由于BVAR目前没有给定值,所以自动初始化为0,然后生成B对象,先初始化变量BVAR,然后调用构造器输出BBB,然后调用方法,这时BVAR已初始化,所以输出BVAR=2222,而对象A中变量AVAR由于没有调用对象A的方法dosomething,所以其值为0,则输出0 全部输出就如下: AAA Bvar=0 BBB Bvar=2222 Avar=0 注意:初始化顺序,当继承时,先生成超类对象,生成对象时,先生成静态变量,然后是一般变量,然后调用构造器!当所以超类对象生成后,生成本对象,顺序一样! 当方法被覆盖时,调用目前对象的方法!这得注意
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 喝酒了怎么醒酒 醒酒吃什么水果 什么比较醒酒 醒酒快的方法 喝什么可以醒酒 蜂蜜水能醒酒吗 喝点什么醒酒 能醒酒的东西 怎么做醒酒汤 喝酒后怎么醒酒 如何解救 什么可以解酒 啥解酒 吃什么可以解酒 什么能解酒越快越好 什么东西可以解酒 茶可以解酒吗 解酒的方法 怎样可以解酒 快速解酒的方法 喝什么可以解酒 喝什么东西解酒 喝什么解酒 喝什么能解酒 怎么能解酒 什么可以快速解酒 解酒的 有什么解酒的方法 解酒的办法 怎么解酒 什么饮料解酒 怎样解酒 解酒吃什么 什么解酒快 喝酒后吃什么解酒 什么东西解酒 吃什么解酒 吃什么东西解酒 怎么样解酒 什么能解酒 解酒的方法有哪些