class A { int x; } class B extends A { String x; public void printX() { System.out.println(x); } }On rajoute la classe Test.
class Test { public static void main(String[] args) { System.out.println(new B().x); } }
class A { static int x; } class B extends A { static String x; public static void printX() { System.out.println(x); } }
class A { protected int x() { return 3; } } class B extends A { public int x() { return 4; } public void printX() { System.out.println(x()); } } class Test { public static void main(String[] args) { B b = new B(); System.out.println(b.x()); } }
Dans les exemples de classes suivants vous commencerez par dire où se trouvent les erreurs de compilation. Vous les expliquerez et retirerez les méthodes en provoquant. Vous indiquerez ensuite où sont les surcharges et les redéfinitions. Pour les appels de méthodes vous indiquerez également les méthodes appelées.
class A { public void a() {System.out.println("Aa"); } void b(B b) {System.out.println("Ab(B)");} void c() {System.out.println("Ac");} void c(A a) {System.out.println("Ac(A)"); } void c(B b) {System.out.println("Ac(B)"); } static void d() {System.out.println("static Ad");} void e() {System.out.println("Ae");} int f() {System.out.println("Af"); return 2;} void g() throws RuntimeException {System.out.println("Ag"); } void h() throws ArrayIndexOutOfBoundsException {System.out.println("Ah"); } protected void i() {System.out.println("Ai");} } class B extends A{ public void a() {System.out.println("Ba"); } protected void b(B b) {System.out.println("Bb(B)");} public void c(A a) {System.out.println("Bc(A)");} static void d() {System.out.println("static Bd");} static void d(A a) {System.out.println("Bd(A a)");} char f() {System.out.println("Bf"); return 'c';} void g() throws ArrayIndexOutOfBoundsException {System.out.println("Bg"); } void h() throws Exception {System.out.println("Bh");} private void i() {System.out.println("Bi");} } class Min { public static void main(String[] args) { A aa = new A(); A ab = new B(); B bb = new B(); aa.a(); ab.a(); aa.b(aa); ab.b(ab); bb.e(); aa.d(); bb.d(); aa.c(aa); aa.c(ab); aa.c(bb); ab.c(aa); ab.c(ab); ab.c((B)ab); ab.c(bb); ab.c((A)bb); ((B)ab).c(aa); ((B)ab).c(ab); ((B)ab).c((B)ab); ((B)ab).c(bb); bb.c(ab); bb.c(bb); ((A)bb).c(aa); bb.c(ab); bb.c(bb); } }