Java教程

java--接口

本文主要是介绍java--接口,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、接口的定义

1、使用interface关键字修饰的是接口,但接口不是类,接口是特殊的抽象类;

2、适用性:表示一组行为的抽象,当多个类之间存在行为上的共性时,我们可以用接口进行表示;

3、是一种引用数据类型,只能放抽象方法和常量;

4、接口不能被创建对象,所以需要子类来进行重写接口中的功能。

二、接口的实现

  • 接口实现需要实现类实现接口中没有被实现的方法
  • 使用implements关键字实现接口,必须重写接口中的所有的抽象方法
  • 一个类是可以实现多个接口的,若想实现个多个接口,每个接口名中间用逗号隔开
  • 接口和接口之间可以继承,接口A继承接口B,若C类实现了接口A,同时必须重写实现接口A继承过来的抽象方法。
 1 public interface Shape1 { 
 2     public int A = 1;//默认为常量 
 3     public void area();//默认为抽象方法 
 4 }
 5 class CircleImp implements Shape1{ 
 6     @Override public void area() { 
 7         System.out.println(4*4*3.14); 
 8     } 
 9 }
10 class SquareImp implements Shape1{ 
11     @Override public void area() { 
12         System.out.println(4*4); 
13     } 
14 }

• 接口可以作为类型指向实现类对象,调用时不同实现类的实现方法

public class TestInterface {
    public static void main(String[] args) { 
        //Shape1 s = new Shape1();//Cannot instantiate the type Shape1 
        CircleImp ci = new CircleImp(); 
        ci.area(); 
        SquareImp si = new SquareImp(); 
        si.area();
        //接口类型指向不同实现类对象 
        Shape1 s = new CircleImp(); 
        s.area();//计算圆面积 
        Shape1 s1 = new SquareImp(); 
        s1.area();//计算正方形面积 
    } 
}

三、接口的继承

  • 接口之间可以有继承关系,但实现类实现某一接口时,必须实现所有继承关系之间的抽象方法;
  • 一个类可以实现多个接口,同样也必须实现多个接口中定义的抽象方法。

四、接口和抽象类的区别

相同点:

  1. 都不能被实例化;
  2. 接口的实现类或者抽象类的子类都只有实现了接口或抽象类中的方法之后才能被实例化。

不同点:

  1. 接口只有定义,不能有方法的实现,java 1.8中可以定义default方法体,而抽象类可以有定义与实现,方法可以在抽象类中实现;
  2. 实现接口的关键字为implements,继承抽象类的关键字为extends。一个类可以实现多个接口,但一个类只能继承一个抽象类。所以,使用接口可以间接地实现多重继承。
  3. 接口强调特定功能的实现,而抽象类强调所属关系。
  4. 接口成员变量默认为public static final,必须赋初值,不能被修改,其所有的成员方法都是public abstract.
  5. 抽象类中成员变量默认default,可以在子类中被重新定义,也可以被重新赋值;
  6. 抽象方法被abstract修饰,不能被private、static、synchronized和native等修饰,必须以分号结尾,不带花括号。
这篇关于java--接口的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!