We create a base class Shape, Circle and Square then inherit Shape.
First case: Circle Square and not cover the base class.
class Shape { public void draw() { System.out.println("Shape!"); } } class Circle extends Shape { } class Square extends Shape { } public class Demo03 { public static void main(String[] args) { // TODO Auto-generated method stub Circle c = new Circle(); c.draw(); Square s = new Square(); s.draw(); } }
result:
Second case: Circle Square covering the base class method does not cover the method of the base class.
class Shape { public void draw() { System.out.println("Shape!"); } } class Circle extends Shape { public void draw() { System.out.println("Circle!"); } } class Square extends Shape { } public class Demo03 { public static void main(String[] args) { // TODO Auto-generated method stub Circle c = new Circle(); c.draw(); Square s = new Square(); s.draw(); } }
result:
The third case: Circle Square and base class methods are covered.
class Shape { public void draw() { System.out.println("Shape!"); } } class Circle extends Shape { public void draw() { System.out.println("Circle!"); } } class Square extends Shape { public void draw() { System.out.println("Square!"); } } public class Demo03 { public static void main(String[] args) { // TODO Auto-generated method stub Circle c = new Circle(); c.draw(); Square s = new Square(); s.draw(); } }
result:
Conclusion: If the derived class does not cover the base class, the base class is then automatically run; method of deriving class covering covers the lead out if the base class, then run.