java微服务开发,为什么只依赖了接口就能拿到实例

发布网友 发布时间:2022-04-21 17:34

我来回答

2个回答

热心网友 时间:2023-07-20 23:48

接口是不能实例化的,getInstance() 获取的实例是实现了这个对应接口的类的实例

public interface Animal{
    public void eat();
}

class Person implements Animal {
    public void eat() {
        System.out.print("eat");
    }
    public Animal getInstance() {
        return new Person();
    }
}

这个例子中,Person是Animal子类,所以在getInstance()方法中可以将返回的Person实例向上转型为Animal,但是并不是实例化Animal接口

追问

IAccount是接口类型,调用getInstance却强制转换为IAccount

追答你查看一下pro.getProperty("IAccount")返回的是什么类名,从代码看应该是返回一个实现了IAccount接口的类名(包含了包名和类名),这个肯定不是返回接口名,如果返回接口名,调用newInstance()的时候就会报错。

热心网友 时间:2023-07-20 23:48

Java中的接口类型是不能创建实例的。这是没有什么好质疑的。你所问的问题可以去百度百科看更看,他写的比我回答的好。,http://ke.baidu.com/link?url=Gx4qz3pQdcu1G9ekzjJMDQ2GdzB8nrqPnHLAfKcQHWlZx0XopIgmsP0D8QQcaD-MEhAOVwIBBsHCsL2R3O1mAq

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com