接口

一、抽象类和抽象方法

定义:

抽象方法是指仅有声明没有方法体的方法,用abstract关键字声明。

如果一个类包含一个或多个抽象方法(不一定所有方法都必须是abstract),那就被限定为抽象类。

如果从一个抽象类继承,并想创建该新类的对象,那么就必须为基类中的所有抽象方法提供方法定义。如果不这样做,那么导出类也是抽象的,且编译器会强制我们用abstract限定。

用途:

为所有的导出类提供一个通用的接口,不同的子类可以通过不同的方式表示此接口,通过接口建立起一种基本形式,以此表示所有导出类的公共部分。

 

二、接口

定义:

    抽象类允许在类中穿件一个或多个没有定义的方法,提供接口部分;而接口可以认为是完全抽象的类,接口中所有的方法都必须是没有定义的,它只确定方法名、参数列表和返回类型,接口只提供形式,不提供任何具体实现。

    任何使用某特定接口的代码都知道可以调用该接口的哪些方法,而且仅需知道这些

    Interface默认是包访问权限,可以自声明为public。接口中可以包含域,默认为static和final的。接口中的方法默认为public,且只能为public,否则在继承后方法的访问权限会被降低。

 

三、Java中的多重继承

  •     因为接口没有任何具体实现,因此没有任何与接口相关的存储,也就无法阻止多个接口的组合。
  •     在Java中,可以同时实现多个接口以达到多重继承的目的,并且新的类可以向上转型为每个接口。
  •     在使用时应注意,同时实现多个接口,这些接口中尽量不要有同名的方法,否则会造成代码混乱。
  •     接口可以通过继承进行扩展:
Interface Vampire extends DangerousMonster, Lethal {
    void drinkBlood();
}
//注意: DangerousMonster和Lethal也都是接口,Vampire继承了这两个接口,而drinkBlood()是Vampire自己特有的方法, DangerousMonster和Lethal中的方法没有在新的接口里具体声明,但实际是存在的;但是实现Vampire接口的类里要把这三个接口中的方法都override下。

 

posted @ 2016-04-17 09:57  lqzzang  阅读(133)  评论(0编辑  收藏  举报