java中一个子类继承父类,功能比父类强大了,那么父类是不是就没有使用价值了?

例如ScheduledThreadPoolExecutor类继承与ThreadPoolExecutor,父类能做的子类都能做,那么某个应用只需要用到父类就能实现,却用ScheduledThreadPoolExecutor,这样使用有弊端吗?例如更消耗性能与内存什么的?如果没有,那么是不是代表任何应用场景中父类ThreadPoolExecutor都被子类给取代了?

父类更多的是一个继承的作用,比如我现在需要制作好多家具,但是这些家具都有一些共同特性:都是实木,加工程序,销售程序等,然后沙发有沙发的特性,桌子有桌子的特性,定义类的继承主要是为了更好的拓展,比如某天我所有的家具的加工程序突然都改变了,如果没有父类,我是不是要在所有的子类里面都去重新修改加工程序?但是如果这些家具都继承了同一个父类的话,我就只需要修改父类(也就是家具)的加工程序,就不需要沙发、桌子什么的都修改了。。
而父类的作用还不仅如此,比如我现在需要执行“加工”这一方法,但是我不知道是执行加工沙发还是执行加工桌子,那么久直接选择执行加工家具了,类的继承一个是方法属性的继承,还有就是一种规范(跟接口一样)。。追问

这些我明白,我的意思不是否定继承思想,父类肯定是有必要存在的,我这里只是想讨论一个简单而又极端的理想话案例,就例如一个工具类a,工具类b继承了a,并没有改写a的任何方法,但加多了很多方法。而在实际使用中,仅仅需要用到a类的地方,用b类,会不会有比直接使用a类所没那么好的地方?

追答

你后面的这个问题逻辑好混乱。。。不是很理解你的思路。。。

追问

说白了就是父类a能做的,子类b都能做,那么所有应用到a类的场景,都可以用b类去替换,但这么做会不会明显地损耗性能

追答

new一个A出来肯定要比new一个B出来耗的内存要小一点,但是现在关键不是你说的这种,如果你只需要A的功能,那你为什么还要让B来继承A?这本身就是一种矛盾。子类继承父类是为了在其基础上增加拓展,但是如果你不需要这个拓展,那这个子类就没有存在的意义了。

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-01-12
继承有更良好的扩展性不是吗 你设计父类的时候肯定有想到 可能有一写类似功能的子类会存在,所以不需要再重新写一个类了 只要继承出来重新写就好了本回答被网友采纳

Java 子类继承父类,子类重写父类方法,这种情况下父类可以获取到子类的数...
一般情况下是不行的,因为孩子尚未出世哪里来的属性。但有时需要在父类处理该类(包含子类)的所有属性,该怎么做呢,有种方法能解决——在父类中将子类的实例引用进来。假设BaseClass是基类,有个getAll方法用以获取该类的所有属性。SubClass继承子BaseClass,SSClass继承自SubClass,SSClass的实例调用get...

java中子类继承父类后,子类就能调用父类的方法吧?,为啥我写的子类不...
老子能调儿子。儿子没那么大能力。。是父类引用指向子类对象后,所说的父类引用可以调用子类的具体方法解决问题。方法要执行就要有对象,子类对象从来不能调用父类对象的方法,只能说子类对象里有父类对象的继承来的方法,实际调用的还是子类的方法,由于继承,所以默认有父类的非私有方法。

java子类继承父类 ,父类调用子类的属性和方法吗?
父类不能调用子类的方法,子类方法是在子类中扩展出来的,而不是从父类继承而来的,但如果是覆盖父类方法,父类就可以调用。给你一个例子吧:public class A { public void a(); } public class B extends A { @Override public void a(); public void b(); }在这个例子中...

子类可以继承父类的什么
子类不能继承父类的所有方法和属性,只能继承父类所有的非private(私有)的属性和方法,而private成员是不能被继承的。打个比方:你能继承你爸的财产,但不能继承你爸的所有财产。因为你爸要养老,这是会把财产的一部分作为私有,不让你继承。 JAVA的继承也就这样。父类中public,protected修饰的属性...

下列说法中,( )是正确的。
子类方法不能产生比父类更多的异常。子类拥有的成员数目小于等于父类拥有的成员数目,选项A说法错误;父类代表的对象范围比子类广,选项B说法正确;子类要调用父类的方法,可以使用super关键字,也可以将父类的方法进行重写,选项C说法错误。在Java中一个类只能有一个父类,选项D说法错误。

java中的强制类型转换
在Java中由于继承和向上转型,子类可以非常自然地转换成父类,但是父类转换成子类则需要强制转换。因为子类拥有比父类更多的属性、更强的功能,所以父类转换为子类需要强制。那么,是不是只要是父类转换为子类就会成功呢?其实不然,他们之间的强制类型转换是有条件的。当我们用一个类型的构造器构造出一个...

父类中的private方法能被继承吗
正确的回答是:如果一个子类继承了父类,那么这个子类拥有父类所有的成员属性和方法,即使是父类里有private属性的变量,子类也是继承的,只不过不能使用,也就是说,它继承了,但是没有使用权,似乎又点矛盾,用我们通俗的说法就是 只能看,不能用,谢谢!虽然是这样,但是,我们还是可以通过set 和get...

Java中子类继承父类到底是不是相当于直接复制父类的代码,请各位高人务 ...
当然不是。。。继承只是在两个类之间建立一种抽象到具象的关系 两个类,从所描述的特性上有相同点,但从类的本质上来说完全不同,所以不可能是直接复制父类代码。换句话说,父类的构造方法、私有方法、私有属性都不可直接用,明显不是复制

子类将继承父类所有的方法和属性吗?为什么?
继承可以使得子类别具有父类别的各种属性和方法,而不需要再次编写相同的代码。在令子类别继承父类别的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类别的原有属性和方法,使其获得与父类别不同的功能。另外,为子类别追加新的属性和方法也是常见的做法。 一般静态的面向对象编程语言,继承属于...

JAVA 子类重写继承的方法时,可以降低方法的访问权限吗?
不可以的,首先,子类继承父类的访问修饰符要比父类的更大,也就是更加开放,假如我父类是protected修饰的,其子类只能是protected或者public,绝对不能是friendly(默认的访问范围)或者private,当然使用private就不是继承了。其次,还要注意的是,继承当中子类抛出的异常必须是父类抛出的异常的子异常,或者...

相似回答