Fork me on GitHub

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();
		
	}
}

结果:

结论:如果导出类没有覆盖基类,那就自动运行基类中的方法;如果导出来覆盖了基类,那就运行导出类中覆盖的方法。

 

posted @ 2019-07-24 11:00  gentleKay  阅读(288)  评论(0编辑  收藏  举报