Java 通过实现一个接口,一个类是否会变成一个“类”;“类型”;那张脸?
我认为当一个类实现一个接口时,它说它“可以”完成接口中定义的事情。我还认为“是”或“类型”符号是用于类层次结构的,这意味着一个类继承自超类。我的理解正确吗?是的。使用Java 通过实现一个接口,一个类是否会变成一个“类”;“类型”;那张脸?,java,oop,Java,Oop,我认为当一个类实现一个接口时,它说它“可以”完成接口中定义的事情。我还认为“是”或“类型”符号是用于类层次结构的,这意味着一个类继承自超类。我的理解正确吗?是的。使用instanceof运算符可以明显看出这一点: 接口I{} 类实现I{} ... 静态布尔isAnI(对象对象对象){ 返回(obj instanceof I); } 在这里,调用isAnI(newa())将返回true 编辑:在更好地理解了这个问题之后,我认为这可以归结为Java中IS-A的正式定义。Wikipedia关于一般O
instanceof
运算符可以明显看出这一点:
接口I{}
类实现I{}
...
静态布尔isAnI(对象对象对象){
返回(obj instanceof I);
}
在这里,调用isAnI(newa())
将返回true
编辑:在更好地理解了这个问题之后,我认为这可以归结为Java中IS-A的正式定义。Wikipedia关于一般OO定义的文章。从这个基于继承层次结构的角度来看,我会将答案改为否,同意Farmor的答案。是。使用instanceof
运算符可以明显看出这一点:
接口I{}
类实现I{}
...
静态布尔isAnI(对象对象对象){
返回(obj instanceof I);
}
在这里,调用isAnI(newa())
将返回true
编辑:在更好地理解了这个问题之后,我认为这可以归结为Java中IS-A的正式定义。Wikipedia关于一般OO定义的文章。从这个基于继承层次结构的角度来看,我会将我的答案改为“否”,同意Farmor的答案。我不完全确定我是否理解您的问题。但是,接口确实说明了类“可以做什么”,但是您还可以强制转换该接口的对象并运行接口的方法。工作中的多态性。我不能完全肯定我理解你的问题。但是,接口确实说明了类“可以做什么”,但是您还可以强制转换该接口的对象并运行接口的方法。工作中的多态性。从标题问题来看,我会说不 但是,在阅读Java语言规范时,有人回答说是,并通过使用instanceof来说明这一点 两种引用类型是相同的运行时类型,如果: 它们都是类或接口类型,由相同的类装入器定义,并且具有相同的二进制名称
实现接口的类不会收到接口的二进制名称。从标题问题中我会说不 但是,在阅读Java语言规范时,有人回答说是,并通过使用instanceof来说明这一点 两种引用类型是相同的运行时类型,如果: 它们都是类或接口类型,由相同的类装入器定义,并且具有相同的二进制名称
实现接口的类将不会收到接口的二进制名称。根据本文:。它说,当一个类扩展一个抽象类时,它所建立的“是”关系,但它与接口建立的是“可以做”的关系。如果抽象类和接口都在建立“是”的关系,那么接口的用途是什么?让我们不要进入多重继承和其他基本的东西…不知道为什么这被否决。人们至少应该发表评论。根据本文:。它说,当一个类扩展一个抽象类时,它所建立的“是”关系,但它与接口建立的是“可以做”的关系。如果抽象类和接口都在建立“是”的关系,那么接口的用途是什么?让我们不要进入多重继承和其他基本的东西…不知道为什么这被否决。人们至少应该发表评论。
interface I { }
class A implements I { }
...
static boolean isAnI(Object obj) {
return (obj instanceof I);
}