当前位置: 首页 > 知识库问答 >
问题:

如何将任意类分配给子类?

景令秋
2023-03-14

我有两个超类(OwnerOtherOwner),和一个子类Dog。Dog类有一个所有者setter函数(setOwner),需要它接受其中一个超类作为其变量。所有者。我在分配和抽象类类型时遇到问题。

阐明想法的代码示例:

public class Dog {

    private ??? owner; // Help Here
    private String dogName;
    private String dogRace;
    // ... etc;
    
    public ??? void setOwner(Class??? owner) { // Help Here
        this.owner = owner;
    }

假设我需要像这样使用这3个类,并且两个Owner类具有相同的功能。我该怎么做?

共有1个答案

上官鸿祯
2023-03-14

解决方案:

public abstract class Owner {

}

public class FineOwner extends Owner {

}

public class BadOwner extends Owner {

}

public class Dog {

    private Owner owner; // Help Here
    private String dogName;
    private String dogRace;
    // ... etc;

    public void setOwner(Owner owner) { // Help Here
        this.owner = owner;
    }
}

通过使用抽象,您可以将Owner作为Dog的字段传递,然后在此处解析FineOwnerBadOwner

 类似资料:
  • 我有两个超类(和)和一个子类。类有一个所有者设置函数(),需要它接受任一超类作为其变量。我在分配和抽象类类型时遇到问题。 阐明想法的代码示例: 假设我需要像这样使用这3个类,并且这两个所有者类具有相同的函数。我该怎么做?

  • 假设我正在从S3文件夹中读取100个文件。每个文件的大小为10 MB。当我执行<code>df=spark.read时。parquet(s3路径),文件(或更确切地说分区)如何在任务之间分布?E、 g.在这种情况下,<code>df</code>将有100个分区,如果spark有10个任务正在运行以将该文件夹的内容读取到数据帧中,那么这些分区是如何分配给这10个任务的?它是以循环方式进行的,还是每

  • 问题内容: 我有几个提供的接口 和一个实现第一个的类: 如果我不能更改任何接口,那么在保持实现尽可能通用的同时最好的做法是什么? 编辑 我无法中断实例化的其他一些代码, 因此我在实现中也应该有两种通用类型。 问题答案: 问题是显然不是。Java是强类型的,不会允许您执行此类操作。 您可以将其强制转换为,在这种情况下,您仍然会收到有关未经检查的转化的警告。这意味着此转换是 不安全的 。 或直接使用代

  • 我想知道如何防止这种情况发生? 问题是,创建对象剥离类装饰器,构造函数逻辑等的对象。如何明确防止此行为? 当涉及到像这样的对象时,还有另一个反序列化问题。有时,我有这样的课程: 像这样的类必须通过<code>JSON反序列化。解析(“一些字符串”)但反序列化后,它们也会作为“从头开始的对象”出现。所以,任何装饰器都不存在了,任何构造器逻辑都不存在,元也不存在了。例如。

  • 问题内容: 我有一个关于将子类列表分配给超类列表的基本问题。 所以我有以下内容: 为什么最后一次分配失败?对不起,新手问题 问题答案: 为了解释这一点,让我用整数代替“ B”,用数字代替“ A”。这只是为了使其更容易解释。 失败的原因是因为nList可以采用任何Number;可以采用Integer;可以采用Double;或者就此而言,可以是Number的任何子类。但是,对于iList并非如此。您不

  • 问题内容: 我想将替代类分配给表中的行。我在上使用ng-repeat 我想得到这样的输出: 我已经试过了(无效): 我无法正常工作。似乎Angular也在使用’class’属性。为什么这样做呢?我可以告诉AngularJS不要将class属性用于内部评估吗? 请帮忙。谢谢! 问题答案: 您应该为此使用角度指令ngClassEven和ngClassOdd。 查看文档部分,了解如何使用它们 http: