Java 中的继承好处与坏处,什么时候使用

好处:

1.提高了代码的复用性

子类继承父类后可以使用父类的方法,因此可以大大节省代码量,如:

//父类为People
public class People{
          
   
	public void run(){
          
   
		System.out.println("正在跑步");
	}
}
//子类为Teacher,如果不继承People类,想要实现run()方法
public class Teacher{
          
   
 	public void run(){
          
   
  		System.out.println("正在跑步");
 	}
}

显然这两个run()方法是一样的,如果还有Student类,Worker类等类都需要run(),无疑会增加相当多的代码量,造成代码冗余。 继承可以很好的解决这个问题,让Teacher类继承People类后就可以调用People类中的方法run(),而自己不需要再写run(),同样可以达到效果。

public class Teacher extends People{
          
   
}
//测试类Demo
public class Demo{
          
   
	public static void main(String[]args){
          
   
		Teacher demo1=new Teacher();
		demo1.run();
	}
}

2.提高了代码的可维护性

这个很好理解,这就好比父亲有一家公司,,他对儿子们很慷慨,只要是这家公司业务范围内的事情,儿子们随便利用公司的资源,但显然这家公司规章制度怎么制定还是父亲说了算,儿子们只能依照规矩办事。如果儿子们不满意可以自己开一家业务相同的公司,这就是方法的重写,此处不讨论。因此如果希望父亲和儿子们都按照一种新的模式运作公司,只需要做通父亲的思想工作就行了,让父亲去号令儿子们。以上边的为例,如果希望修改People及其所有子类的run()方法,只需要修改People类即可。

public class People{
          
   
	public void run(){
          
   
	  System.out.println("正在拼命跑步,跑的满头大汗");
	 }
}

Demo类不变

弊端

正所谓成也萧何,败也萧何,提高可维护性的同时,也极大降低了程序的灵活性,父类的改变将对所有子类产生影响,不管子类需不需要这个改变。程序的耦合性提高了,所以这就涉及到什么时候该使用继承,什么时候不该用继承,不能盲目追求代码复用,减少编程工作量而使用编程。

什么时候该使用继承?

判断的准则是:子类is a 父类? 正例:老师是一个人,工人是一个人,还比如花是一种植物,草是一种植物,花类和草类都可以继承植物类。 反例:猫类和狗类,显然不能说猫是一种狗,即便编码的时候狗类中存在猫类可以使用的方法也不应该进行继承。

经验分享 程序员 微信小程序 职场和发展