Java——导出类是否覆盖基类中方法,而发生的几种情况
我们创建一个基类 Shape,然后Circle和Square 继承Shape。
第一种情况:Circle 和 Square 都不覆盖基类的方法。
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(); } }
结果:
第二种情况:Circle 覆盖基类方法 而 Square 不覆盖基类的方法。
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(); } }
结果:
第三种情况:Circle 和 Square 都覆盖基类的方法。
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(); } }
结果:
结论:如果导出类没有覆盖基类,那就自动运行基类中的方法;如果导出来覆盖了基类,那就运行导出类中覆盖的方法。