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

如何将任意类分配给子类?[已关闭]

鲁展
2023-03-14

我有两个超类(Owner其他所有者)和一个子类DogDog类有一个所有者设置函数(setOwner),需要它接受任一超类作为其变量this.owner。我在分配和抽象类类型时遇到问题。

阐明想法的代码示例:

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个类,并且这两个所有者类具有相同的函数。我该怎么做?

共有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;
    }
}

通过使用抽象,您可以将所有者作为狗的字段传递,然后在此处解析FineOwner或BadOwner。

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

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

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

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

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

  • 我发现jQuery代码打印出在网格内点击的div,我如何修改这段代码,使它只向点击的div.grid_item添加类“.active”,有人能帮助我理解如何做到这一点吗? 我在下面添加了html和js。 null null