菜鸟之旅——Java入门篇(六)接口

抽象类

  用关键字abstract 修饰的类称为抽象类(abstract类)。例如:

            abstract class A{

                    ..............

           }

  抽象类有如下特点:

(1)抽象类中可以有抽象方法

  与普通的类相比,抽象类可以有抽象方法(abstract方法),也可以有非抽象方法。对于抽象方法,只允许声明,不允许实现,而且不允许使用fianl和abstract同时修饰一个方法。

    abstract class A{

         abstract int min(int x ,int y );

                int max(int x,int y){

                  return x>y?x:y;

               }

  }

(2)抽象类不能用new 运算创建对象。

对于抽象类,我们不能使用new运算符创建该类的对象。如果一个非抽象类是某个抽象类的子类,那么它必须重写父类的抽象方法,给出方法体,即在子类中将抽象方法重新声明,但必须去掉abstract修饰,同时保证声明的方法名字、返回类型、参数个数和类型与父类的抽象方法完全相同。

(3)做上转型对象

尽管抽象类不能创建对象,但它的非抽象子类必须重写其中的全部抽象方法,这样可以让抽象类声明的对象成为其子类对象的上转型对象,并调用子类重写的方法。

 
抽象类也可以没有抽象方法。如果一个抽象类是abstract类的子类,它可以重写父类的抽象方法,也可以继承这个抽象方法。

接口

1.接口的声明与使用

(1)接口声明

接口通过使用关键字interface来声明,格式如下:

            interface   接口名字

(2)接口体

接口体中包含常量定义和方法定义两部分。接口体中只进行方法的声明,不允许提供方法的实现,所以方法的定义没有方法体。例如:

        interface  P{

              int   M= 100;

             void  Add();

             float  sum (float x, float y);

      }

 (3)接口的使用

一个类通过使用关键字implements 声明自己实现一个或多个接口。如果实现多个接口,用逗号隔开接口名。如果一个类实现某个接口,那么这个类必须实现该接口的所有方法,即为这些方法提供方法体。在类中实现接口的方法时,方法的名字、返回类型、参数个数及类型必须与接口中的完全一致。注意,接口中的方法默认是public和abstract,接口在声明方法时可以省略方法前面的关键字public和abstract,但是类在实现接口方法时,一定要用public来修饰。如果接口方法返回类型不是void类型,那么在类中实现该接口方法时,方法体中至少有一个return语句,如果是void类型,类体除了“{”“}”,也可以没有任何语句。类实现的接口方法以及接口中的常量可以被类的对象调用。

Java提供的接口都在相应的包中,通过引入可以使用Java提供的接口,也可以自己定义接口,一个Java源文件就是有类和接口组成的。

接口声明时,如果关键字interface前面加上关键字public,就称这样的接口是一个public接口。public接口可以被任何一个类使用。接口不加public修饰,则被称为友好接口类,友好接口类可以被同一包中的类使用。

接口也可以被继承,即可以通过关键字extends声明一个接口是另一个接口的子接口。由于接口中的方法和常量都是public的,子接口将继承父接口中的全部方法和常量。

2.接口与多态

Java中,一个类可以实现多个接口,接口可以增加很多类都需要实现的功能,不同的类可以使用相同的接口,同一个类也可以实现多个接口,这就实现了功能的多态性。

抽象类与接口的比较

1.抽象类和接口都可以有抽象方法。

2.接口中只可以有常量,不能有变量,而抽象类中即可以有常量也可以有变量。

3.抽象类中也可以有非抽象方法,接口不可以。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值