本帖最后由 sanyawa 于 2012-11-13 11:59:32 编辑

解决方案 »

  1.   

    1.一个类B  在继承接口  A  时,不一定必须实现它的所有方法,对吗?
    —— 这种情况下,类B必须是 抽象类 abstract
      如果类 C 再继承这个类B  的话,那么类C 也可以去实现类B 没有实现的A中的方法?
    —— 可以,也可以重写(overwrite)B类已经实现的方法
    2.抽象方法以及接口中定义的方法,是否可以带有参数,
    —— 当然可以;且类所实现的方法应跟接口的参数保持一致,否则Java视为同名方法的重载
      还是说在 后面继承和实现的时候 才能带参数进行重写?
    —— 应跟接口保持一致
    3.JAVA中学到了内部类和 匿名类,请两种使用类的方式,是不是很常见,推荐使用内部内和匿名类吗?
    —— 无法一概而论,视场合而定。实际上Java自身的类大量使用内部类;
    —— 匿名类有其优势,但一般来说用的少些。
      

  2.   

    谢谢你的答复,
    关于第二个问题还请继续:
    1.你的意思是说,如果抽象方法和接口中的方法在定义的时候,就带了参数,
      那么后面继承和实现他们的时候,必须保持一样的参数,还是说可以不一样,也就是说可以进行重载?2.接口中的方法在定义时,我看见书上很多都是:返回值 +方法名,并没有abstract关键字
       是不是默认就是有abstract的,而且还带有public。
    3.书上老是说实现接口和继承抽象类的时候,必须实现所有的方法,
    但是我认为,如果实现接口的时候不一定非得实现所有的方法,只不过这样的类也就成了抽象类,
    同样的,如果继承抽象类的时候,没有全部实现父类类中的抽象方法,那么这个子类也仍然是抽象类,对吗?
      

  3.   


    Quote: 引用 2 楼 sanyawa 的回复:

    谢谢你的答复,
    关于第二个问题还请继续:
    1.你的意思是说,如果抽象方法和接口中的方法在定义的时候,就带了参数,
      那么后面继承和实现他们的时候,必须保持一样的参数,还是说可以不一样,也就是说可以进行重载?
    如果想要实现抽象类中的抽象方法时,在后面继也没有和实现的时候,必须保持一样的参数,但是如果你是重载的话,就没必要了,可以自己定义。1L的意思是说参数可以不一样,只是取决于你自己对该方法是继承还是重载。

    2.接口中的方法在定义时,我看见书上很多都是:返回值 +方法名,并没有abstract关键字
      在接口中所有的方法都是abstract的,所以在接口中可以不带abstract,但你要注意,只要是接口里面的方法,都是抽象化的。
    3.书上老是说实现接口和继承抽象类的时候,必须实现所有的方法
      这里说的所有方法,指的是抽象方法,拿抽象类来说,假如A是抽象类,B继承A,此时B必须覆写A所有的抽象方法才可以,否则B还是抽象类,无法被对象实例化。对于抽象类,你的理解是对的,接口这块我不记得了,回头查下。
    个人理解,如果有误,请加以纠正,谢谢。