A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

©  『无』尘 中级黑马   /  2013-11-18 03:57  /  1519 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

interface A{               
        public String AUTHOR = "张三" ;       
        public void print() ;       
        public String getInfo() ;       
}
interface B{         
        public void say() ;       
}
class X implements A,B{
        public void say(){
                System.out.println("Hello World!!!") ;
        }
        public String getInfo(){
                return "HELLO" ;
        }
        public void print(){
                System.out.println("作者:" + AUTHOR) ;
        }
};
public class InterfaceDemo03{
        public static void main(String args[]){
                X x = new X() ;       
                x.say() ;
                x.print() ;
        }
};


问题1:请问这个程序里的 getInfo(){return "HELLO" ;}    方法 为什么没有执行,写了个方法却不执行,那写这个方法有什么用呢?
问题2:此方法里的return "HELLO"。都说return是返回数据,那这个"HELLO"返回给谁了,最后的打印结果和这个"HELLO"好像没任何关系,那这个返回值有其他什么意义么,求大侠们解答       

11 个回复

倒序浏览
首先回答你第一个问题,String getInfo()  执不执行是看你是否需要调用,而如果你不需要而不调用其作用就是单纯的必须复写而已,这是接口强制的,不解释。

第二个问题,“hello”既然是返回值,那么谁调用它,就返回给谁!如果不需要那么它的意义仅是使interface内的的方法达到全部复写的作用。
回复 使用道具 举报
因为X实现了接口A和接口B,所以在子类X中都需要覆盖其父类接口中的方法。所以必须要实现getInfo方法。“HELLO”没有打印是因为你没有调用,当你在主函数中调用了X.getInfo()时,就会打印“HELLO”了,就像你调用X.print()和X.say()一样。
回复 使用道具 举报
问题1:请问这个程序里的 getInfo(){return "HELLO" ;}    方法 为什么没有执行,写了个方法却不执行,那写这个方法有什么用呢?
答:你都没有调用怎么执行啊!!!谁需要HELLO这个字符串,谁就调用它。因为你实现了接口所以必须要实现getInfo这个方法,这是语法定义。

问题2:此方法里的return "HELLO"。都说return是返回数据,那这个"HELLO"返回给谁了,最后的打印结果和这个"HELLO"好像没任何关系,那这个返回值有其他什么意义么,
答: 还是那句话,谁调用它了它就将“HELLO”返回给谁,还有在实现接口的时候,要看清楚你是否需要其中的功能,如果不需要就没有必要实现,这个接口中的方法你不需要,不代表别的类不需要。
回复 使用道具 举报
你不调用,哪来的执行
回复 使用道具 举报
我用 x.getInfo()  调用了这个方法,但是编译报错啊,哪位能告诉我调用该怎么调用才不报错?
回复 使用道具 举报
┾——黑马 发表于 2013-11-18 09:08
问题1:请问这个程序里的 getInfo(){return "HELLO" ;}    方法 为什么没有执行,写了个方法却不执行,那写 ...


我用 x.getInfo()  调用了这个方法,但是编译报错啊,怎么调用才不报错?
回复 使用道具 举报
松毛 发表于 2013-11-18 08:14
因为X实现了接口A和接口B,所以在子类X中都需要覆盖其父类接口中的方法。所以必须要实现getInfo方法。“HEL ...

调用不应该是小写的x么,大写的X不对吧?
回复 使用道具 举报
黄炳期 发表于 2013-11-18 13:20
你不调用,哪来的执行

我用 x.getInfo()  调用了这个方法,但是编译报错啊,怎么调用才不报错?
回复 使用道具 举报
松毛 高级黑马 2013-11-18 16:28:13
10#
 『无』尘 发表于 2013-11-18 15:44
我用 x.getInfo()  调用了这个方法,但是编译报错啊,怎么调用才不报错?

这个方法只是返回了!要打印才会出来!System.out.println(x.getInfo());
回复 使用道具 举报
冒个泡~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马