java属性方法执行顺序_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > java属性方法执行顺序

java属性方法执行顺序

 2011/11/9 8:27:07  dafan125  http://dafan125.iteye.com  我要评论(0)
  • 摘要:样题一:classP{privateintval=10;publicvoidoutput(){System.out.println("P.output(),val+"+val);}publicP(){System.out.println("Pconstructor");output();}}publicclassAextendsP{privateintval=1;publicvoidoutput(){System.out.println("A.output(),val="+val);
  • 标签:方法 Java 执行

?

样题一

class P {

?? ?private int val = 10;

?

?? ?public void output() {

?? ? ? ?System.out.println("P.output(),val+" + val);

?? ?}

?

?? ?public P() {

?? ? ? ?System.out.println("P constructor");

?? ? ? ?output();

?? ?}

}

?

public class A extends P {

?? ?private int val = 1;

?

?? ?public void output() {

?? ? ? ?System.out.println("A.output(),val=" + val);

?? ?}

?

?? ?public A(int val) {

?? ? ? ?this.val = val;

?? ? ? ?System.out.println("A constructor");

?? ?}

?

?? ?public static void main(String[] args) {

?? ? ? ?A a = new A(5);

?? ?}

}

答案:P?constructor??A.output(),val=0??A?constructor

?

样题二

?

class parent {

?? ?public parent() {

?? ? ? ?System.out.println("parent...");

?? ?}

}

?

class child extends parent {

?? ?brother b = new brother();

?? ?public child() {

?? ? ? ?System.out.println("child...");

?? ?}

?

}

?

class brother {

?? ?public brother() {

?? ? ? ?System.out.println("brother...");

?? ?}

}

?

public class Testchild {

?

?? ?/**

?? ? * @param args

?? ? */

?? ?public static void main(String[] args) {

?? ? ? ?System.out.println(new child());

?

?? ?}

?

}

答案:parent... ?brother... ?child...

?

结论:属性的优先级高于方法,父类构造方法高于自身构造方法,重写父亲类的方法高于本身属性执行?。

发表评论
用户名: 匿名