Java — 面向对象(自测题)

来源:互联网 发布:深圳ug数控编程培训 编辑:程序博客网 时间:2024/06/05 23:03
1、
package package1;class Test{private static int x =  10;public void show(int x)  {x++;this.x++;System.out.println(x+" "+this.x);} public static void main(String[] args){int x = 20;Test t = new Test();t.show(x);}} 

【答案】:21 11

2、

package package1;class Fu{public int num = 10;public Fu(){System.out.println("fu");}}class Zi extends Fu{public int num = 20;public Zi(){System.out.println("zi");}public void show(){int num = 30;System.out.println(num);System.out.println(this.num);System.out.println(super.num);}}class Test {public static void main(String[] args) {Zi z = new Zi();z.show();}}

【答案】:

fu

zi

30

20

10


3、

/* * 1、先加载类 -> 静态代码块中的代码 * 2、构造器 -> 构造代码块+构造方法 */class Fu {static {System.out.println("静态代码块Fu");}{System.out.println("构造代码块Fu");}public Fu() {System.out.println("构造方法Fu");}}class Zi extends Fu {static {System.out.println("静态代码块Zi");}{System.out.println("构造代码块Zi");}public Zi() {System.out.println("构造方法Zi");}}class Test {public static void main(String[] args) {Zi z = new Zi();}}

【答案】:

静态代码块Fu

静态代码块Zi

构造代码块Fu

构造方法Fu

构造代码块Zi

构造方法Zi


4、

package package1;/* * 系统会自上而下寻找构造器,直到找到构造器,并调用构造器 * YXYZ */class X {Y b = new Y();X() {System.out.print("X");}}class Y {Y() {System.out.print("Y");}}public class Z extends X {Y y = new Y();Z() {System.out.print("Z");}public static void main(String[] args) {new Z(); }}

【答案】:YXYZ


5、

package package1;class Fu{public void show(){System.out.println("fu show");}}class Zi extends Fu{public void show(){System.out.println("zi show");}public void method(){System.out.println("zi method");}}class Test{public static void main(String[] args){Fu f = new Zi();/* * 子到父,父中没有该方法,所以会报错 *///f.method();/* * 父到子,将父类的引用转化成子类的引用,前提是子类还是子类 * Zi z = ...; */Zi z = (Zi)f;z.method();}}

【答案】:zi method


6、

package package1;import java.nio.channels.ShutdownChannelGroupException;class A{public void show(){show2();}public void show2(){System.out.println("我");}}class B extends A {//public void show() {//System.out.println("B");//}public void show2(){System.out.println("爱");}}class C extends B {public void show(){super.show();//System.out.println("C");}public void show2(){System.out.println("你");}}public class Test {public static void main(String[] args) {/* * 1.在执行一个方法(不是构造器)的时候一定先在实例(右边)中找方法, * 2.找不到,自下而上的找, * 3.重点,每个方法都要这样去找,执行 */A a = new B();a.show();B b = new C();b.show();}}

【答案】:


7、

package package1;class Animal{}class Dog extends Animal{}class Cat extends Animal{}class Test{public static void main(String []args) {Animal p0 = new Animal();Dog p1 = new Dog ();Cat p2 = new Cat ();Animal p3 = new Dog ();Animal p4 = new Cat ();p0 = p1;//向上造型//p1 = p2;//同类直接不可以直接转化//p1 = (Dog)p2;p1 = (Dog)p3;//向下造型p2 = (Cat)p4;}}


0 0
原创粉丝点击