关于java接口的一点疑问 本帖最后由 dnnl_1990 于 2011-03-26 21:39:50 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 从实际作用来看没有什么区别 n可以调用clone方法和finalize方法 m不可以,除此之外都一样m可以调的n也可以调 如果引用时接口类型,那么该引用只能调用接口中声明的变量或方法,接口中的变量都默认是public,final,static的,方法都是public的,如果引用是实现了接口的类的类型,则都可以调用 你B这个类还有个变量b啊,不好意思没看到。就像你说的m.b确实不行。A m = new B();这种方式是多态,JVM在处理多态时采用的是动态绑定方法,静态绑定变量的策略 也就是说当你调用变量的时候,是在编译期就决定到底调用哪个类的变量,而m是A类型的 自然没有b这个变量,所以m.b是错误的。而对方法的调用是在运行期决定的,也就是说m要调的方法是B类型的,所以无论是m.f()还是n.f()都是B类里面的。 这题目就是一个多态的问题,其实属性是不具有多态性的,只有方法具有多态性,这边m.b自然是不可以调用的,因为编译是类型是A类型的,而A中根本就没有b这个常量 n 是class B 的引用,指向class B的一个实例,可以访问到class B的类信息。m 是interface A的引用,指向class B的一个实例,可以访问到interface A的接口信息,不能访问到class B的类信息。这是接口方面向上转型,常用于多态。一般都是提倡用A m = new B();这种方式 System.out.println("123" == "12" + "3");为什么结果是true 我想在本机找到项目源代码 如何动态设置Timer的触发时间? 用java怎么编写并打印下例数字,谢谢? 简单问题,求助,大家务必进来帮个忙 在DOS下运行java mynews出现......? 如何把整数转化成字符 数组参数的函数如何传递?回答有分 关于窗口之间的消息传递问题请教 从控制台打开运行压缩包里的class文件 难!超难!!如何关闭cgi做的系统??除了用页面直接访问 关于boolean类型判断规范问题
m 是interface A的引用,指向class B的一个实例,可以访问到interface A的接口信息,不能访问到class B的类信息。这是接口方面向上转型,常用于多态。一般都是提倡用A m = new B();这种方式