java - 将父类(super class)实例传递给其构造函数是否是更好的做法?

标签 java inheritance

我定义了一个父类(super class),如下;

 public class superClass{

        private superClass superObj;

        public superClass() {
        }
        public superClass(superClass superObj) {
            this.superObj =  superObj;
        }

       public start()...
       public receive()..

我的子类就像;

public class subclass extends superclass {
@Override
 public receive(){
 ........
   }
 public static void main(String args[]){
    Superclass superTst = new Superclass(new subclass());
    superTst.start();
...
}

在这里,我的子类实际上与父类(super class)并不是“is-a”关系。但我想这样扩展,因为,在父类(super class)中我做了一些处理输出(父类(super class)产生新线程并进行处理,所以我可以在父类(super class)中获取输出),这些输出必须由子类访问。

这在理论上正确吗?

最佳答案

我不会这样做。如果子类依赖于父类(super class),则在那里进行依赖注入(inject)。将会更加清楚什么是依赖关系并保持单一责任原则。对不能代替其父类(super class)的东西进行子类化最终只会造成困惑,并且意味着您正在紧密耦合实现。

关于java - 将父类(super class)实例传递给其构造函数是否是更好的做法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36995651/

相关文章:

java - 有没有使用JAVA管理VisualSVN服务器的API

java - 如何 append 到 Java 中的 DataOutputStream?

java - 有没有办法在不创建流程实例的情况下获取Activiti流程定义中的任务?

c++ - 继承的构造函数不能用于复制对象

c++ - 模板化的成员函数可以实现两个基类的虚函数吗?

c++ - 返回不同类型的变量

swift - 从具有私有(private)初始化程序的类继承?

java - 如何使用jsoup访问java中子元素的属性?

c++ - 关于 C++ 编程语言的问题

java - 关于执行时在 build.xml 中出现错误