
java 程序题目
interfaceIFace{}classCFaceimplementsIFace{}classBase{}publicclassObRefextendsBase{pub...
interface IFace{
}
class CFace implements IFace {
}
class Base {
}
public class ObRef extends Base {
public static void main (String[] args) {
ObRef ob = new ObRef();
Base b = new Base();
Object o1 = new Object();
IFace o2 = new CFace();
o1 = 02; //可以编译通过
b = ob; //可以编译通过
ob = b; //不可以编译通过
o1 = b;//可以编译通过
}
}
IFace o2 = new CFace(); 接口也能new?接口不是特殊抽象类吗?为什么可以new ?还有为什么ob=b不能编译通过? 其他能编译通过的原因是什么 希望大神教我 我是菜鸟 展开
}
class CFace implements IFace {
}
class Base {
}
public class ObRef extends Base {
public static void main (String[] args) {
ObRef ob = new ObRef();
Base b = new Base();
Object o1 = new Object();
IFace o2 = new CFace();
o1 = 02; //可以编译通过
b = ob; //可以编译通过
ob = b; //不可以编译通过
o1 = b;//可以编译通过
}
}
IFace o2 = new CFace(); 接口也能new?接口不是特殊抽象类吗?为什么可以new ?还有为什么ob=b不能编译通过? 其他能编译通过的原因是什么 希望大神教我 我是菜鸟 展开
3个回答
展开全部
一句话:父类或者父接口的引用,可以指向子类对象。反过来就不行。
Object是所有类的父类。
接口并不能new 对象,但是可以用接口的引用指向实现了此接口的类的对象。
此时,只可以对o2调用接口IFace 中定义的方法。
----------------
上面全是多态的问题,java面向对象的核心你还没理解。
Object是所有类的父类。
接口并不能new 对象,但是可以用接口的引用指向实现了此接口的类的对象。
此时,只可以对o2调用接口IFace 中定义的方法。
----------------
上面全是多态的问题,java面向对象的核心你还没理解。
追问
o1 = 02 这句话的意思是用o2引用指向o1还是反过来的啊
追答
= 赋值语句,把后面的赋值给前面,所以是使o1引用指向了O2所指向的对象。
展开全部
还有为什么ob=b不能编译通过?
通俗地从范围说,b的范围多、ob的范围少。就像容器一样,多给少,就溢出了。
通俗地从范围说,b的范围多、ob的范围少。就像容器一样,多给少,就溢出了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
IFace o2 = new CFace();
这不是new 接口 这是一种多肽===>"父类接口--子类对象"
至于ob=b不通过 是因为一个类的构造方法是私有的 即使继承也会出错的 好好体会吧
这不是new 接口 这是一种多肽===>"父类接口--子类对象"
至于ob=b不通过 是因为一个类的构造方法是私有的 即使继承也会出错的 好好体会吧
追问
o1 = 02 这句话的意思是用o2引用指向o1还是反过来的啊
追答
java当中的"="是赋值的意思 是将后面的内容赋值给前面的变量
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询