关于接口问题 本帖最后由 sanyawa 于 2012-11-13 11:59:32 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1.一个类B 在继承接口 A 时,不一定必须实现它的所有方法,对吗?—— 这种情况下,类B必须是 抽象类 abstract 如果类 C 再继承这个类B 的话,那么类C 也可以去实现类B 没有实现的A中的方法?—— 可以,也可以重写(overwrite)B类已经实现的方法2.抽象方法以及接口中定义的方法,是否可以带有参数,—— 当然可以;且类所实现的方法应跟接口的参数保持一致,否则Java视为同名方法的重载 还是说在 后面继承和实现的时候 才能带参数进行重写?—— 应跟接口保持一致3.JAVA中学到了内部类和 匿名类,请两种使用类的方式,是不是很常见,推荐使用内部内和匿名类吗?—— 无法一概而论,视场合而定。实际上Java自身的类大量使用内部类;—— 匿名类有其优势,但一般来说用的少些。 谢谢你的答复,关于第二个问题还请继续:1.你的意思是说,如果抽象方法和接口中的方法在定义的时候,就带了参数, 那么后面继承和实现他们的时候,必须保持一样的参数,还是说可以不一样,也就是说可以进行重载?2.接口中的方法在定义时,我看见书上很多都是:返回值 +方法名,并没有abstract关键字 是不是默认就是有abstract的,而且还带有public。3.书上老是说实现接口和继承抽象类的时候,必须实现所有的方法,但是我认为,如果实现接口的时候不一定非得实现所有的方法,只不过这样的类也就成了抽象类,同样的,如果继承抽象类的时候,没有全部实现父类类中的抽象方法,那么这个子类也仍然是抽象类,对吗? Quote: 引用 2 楼 sanyawa 的回复:谢谢你的答复,关于第二个问题还请继续:1.你的意思是说,如果抽象方法和接口中的方法在定义的时候,就带了参数, 那么后面继承和实现他们的时候,必须保持一样的参数,还是说可以不一样,也就是说可以进行重载?如果想要实现抽象类中的抽象方法时,在后面继也没有和实现的时候,必须保持一样的参数,但是如果你是重载的话,就没必要了,可以自己定义。1L的意思是说参数可以不一样,只是取决于你自己对该方法是继承还是重载。2.接口中的方法在定义时,我看见书上很多都是:返回值 +方法名,并没有abstract关键字 在接口中所有的方法都是abstract的,所以在接口中可以不带abstract,但你要注意,只要是接口里面的方法,都是抽象化的。3.书上老是说实现接口和继承抽象类的时候,必须实现所有的方法 这里说的所有方法,指的是抽象方法,拿抽象类来说,假如A是抽象类,B继承A,此时B必须覆写A所有的抽象方法才可以,否则B还是抽象类,无法被对象实例化。对于抽象类,你的理解是对的,接口这块我不记得了,回头查下。个人理解,如果有误,请加以纠正,谢谢。 socket发送邮件 JAVA调用MSSQL2000存储过程,急 怎么将用netbeans建立的项目转成.exe的可执行文件 无论如何,每一个类都应该定义 toString 方法.为什么? 晕啊,老是遇到这样的错误,到底是为什么啊??? 线程经验丰富的人请进 java连接sqlserver2000出错 编日历 汉字输入问题! 急求:如何编译含“import netscape.javascript.JSObject;”的java文件 ? 关于void的问题 swing子界面关闭 父界面如何捕获?
—— 这种情况下,类B必须是 抽象类 abstract
如果类 C 再继承这个类B 的话,那么类C 也可以去实现类B 没有实现的A中的方法?
—— 可以,也可以重写(overwrite)B类已经实现的方法
2.抽象方法以及接口中定义的方法,是否可以带有参数,
—— 当然可以;且类所实现的方法应跟接口的参数保持一致,否则Java视为同名方法的重载
还是说在 后面继承和实现的时候 才能带参数进行重写?
—— 应跟接口保持一致
3.JAVA中学到了内部类和 匿名类,请两种使用类的方式,是不是很常见,推荐使用内部内和匿名类吗?
—— 无法一概而论,视场合而定。实际上Java自身的类大量使用内部类;
—— 匿名类有其优势,但一般来说用的少些。
关于第二个问题还请继续:
1.你的意思是说,如果抽象方法和接口中的方法在定义的时候,就带了参数,
那么后面继承和实现他们的时候,必须保持一样的参数,还是说可以不一样,也就是说可以进行重载?2.接口中的方法在定义时,我看见书上很多都是:返回值 +方法名,并没有abstract关键字
是不是默认就是有abstract的,而且还带有public。
3.书上老是说实现接口和继承抽象类的时候,必须实现所有的方法,
但是我认为,如果实现接口的时候不一定非得实现所有的方法,只不过这样的类也就成了抽象类,
同样的,如果继承抽象类的时候,没有全部实现父类类中的抽象方法,那么这个子类也仍然是抽象类,对吗?