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

Java的继承能够提高代码复用性和可维护性,例如通过继承避免重复的方法实现。然而,这也可能导致程序灵活性降低,因为父类的改动会直接影响所有子类。正确的使用时机在于,当子类本质是一个父类时,如老师是人,植物包含花和草。反之,如猫和狗的关系,不应基于共享方法进行继承。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

好处:

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 父类?
正例:老师是一个人,工人是一个人,还比如花是一种植物,草是一种植物,花类和草类都可以继承植物类。
反例:猫类和狗类,显然不能说猫是一种狗,即便编码的时候狗类中存在猫类可以使用的方法也不应该进行继承。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值