java - 将父类实例对象转换为子类实例对象的行为

标签 java inheritance casting

假设我有一个类如下:

private class ComparableElement extends Element implements Comparable<ComparableElement> {

        @Override
        public int compareTo(ComparableElement o) {
            return getName().compareTo(o.getName());
        }
    }

其中 Elements 定义如下:

public class Element {

    protected String name;

    protected String category;

    public Element() {
        super();
    }

    public Element(String _name, String _category) {
        super();
        this.name = _name;
        this.category = _category;
    }

    public String getName() {
        return name; 
    }
}

那么,如果我有一个 Element 对象,将该 Element 对象转换为 ComparableElement 实例的最佳实践是什么?类似的东西:

Element e;
...
ComparableElement ce = (ComparableElement)e;

只是这行不通......

最佳答案

您可以创建新的构造器ComparableElement:

public ComparableElement (Element element )
{

     //Here you get all the data from the element and set it to this object.

}

关于java - 将父类实例对象转换为子类实例对象的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25034188/

相关文章:

java - 封装和 setter/getter

c++ - 可以在同一个类中重写纯虚函数吗?

c++ - 是否可以通过单个指针访问多态类的不同祖先的虚方法?

c# - 无法将 COM 对象转换为接口(interface)类型 'WUApiLib.UpdateSession c#

java - Java中树形结构中的HashMap

java - Eclipse 中的 Apache Tomcat 7 无法启动 : A child container failed during start

java - 在每个 GWT RPC 方法调用之前 -> 执行一些检查并抛出检查异常

java - C++调用私有(private)成员函数

c++ - 转换指针类型的正确方法

c++ - 为什么动态转换只适用于引用和指针