00:00
/*01, Dog obj. access animal mt , w/o inheritance. */ class Animal{ void eat(){ System.out.println("i am eating"); } } class Dog{ public static void main(String[] args) { Dog d = new Dog(); d.eat(); // error } } // cannot find symbol d.eat(); // error
/*02, above issue done, making local mt */ public class E_002Animal{ void eat(){ System.out.println("i am eating food"); } } class Dog{ public static void main(String[] args) { Dog d = new Dog(); d.eat(); } void eat(){ System.out.println("i am eating ice cream"); } } // i am eating
/*03, above issue done, using extends */ public class E_003Animal{ void eat(){ System.out.println("i am eating"); } } class Dog extends E_003Animal{ public static void main(String[] args) { Dog d = new Dog(); d.eat(); // works } } // works fine
/*04, single i/h */ public class E05{ void showA(){//1 System.out.println("a class method"); } } class B2 extends E05{ void showB(){//2 System.out.println("b class method"); } public static void main(String[] args) { E05 ob1 = new E05(); ob1.showA();//1 ob1.showB(); // wrong B2 ob2 = new B2(); ob2.showA();//2 ob2.showB(); // ok } } // cannot find symbol ob1.showB();
/*05, Multilevel i/h */ class E06{ void showA(){ System.out.println("A Class Method"); } } class B3 extends E06{ void showB(){ System.out.println("B Class Method"); } } class C3 extends B3{ void showC(){ System.out.println("C Class Method"); } public static void main(String[] args) { E06 ob1 = new E06(); System.out.println("\n - - - - - - - - Printing = ob1 "); ob1.showA();//1 ob1.showB(); // wrong ob1.showC(); // wrong B3 ob2 = new B3(); System.out.println(" - - - - - - - - Printing = ob2 "); ob2.showA();//1 ob2.showB();//2 ob2.showC(); // wrong C3 ob3 = new C3(); System.out.println(" - - - - - - - - Printing = ob3 "); ob3.showA();//1 ob3.showB();//2 ob3.showC();//3 } } // - - - - - - - - Printing = ob1 // A Class Method // - - - - - - - - Printing = ob2 // A Class Method // B Class Method // - - - - - - - - Printing = ob3 // A Class Method // B Class Method // C Class Method
/*06, herirical i/h with 2 diff. cls. */ class E07{ void showA(){ System.out.println("a class method"); } } class B4 extends E07{ void showB(){ System.out.println("b class method"); } } class C4 extends E07{ void showC(){ System.out.println("c class method"); } public static void main(String[] args) { E07 ob1 = new E07(); ob1.showA(); B4 ob2 = new B4(); ob2.showA(); ob2.showB(); C4 ob3 = new C4(); ob3.showA(); ob3.showC(); } } // a class method // a class method // b class method // a class method // c class method
/*07, Multiple i/h with 2 clS and same m/t. */ class E08{ void showX(){ System.out.println("a class method"); } } class B5{ void showX(){ System.out.println("b class method"); } } class C5 extends E08, B5{ // let assume public static void main(String[] args) { E08 ob1 = new E08(); ob1.showX(); // complier confused which method is this B5 ob2 = new B5(); ob2.showX(); } } // E08.java:12: error: '{' expected class C5 extends E08, B5{
Home PREVIOUS NEXT