欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JAVA_接口

程序员文章站 2022-10-04 09:07:21
接口相关说明java成为面向对象编程语言的原因是有两种机制存在:抽象类(abstract class)和接口(interface)接口只是一个规范(其重要程度可以理解为word目录),里面的方法都是空的,可以理解为一系列方法和特征的集合,是某个事物对外提供的一些功能的说明接口是特殊的抽象类(抽象类可以理解为没有必要实现的类)java是单继承的,接口可以弥补一个类实现多个接口接口的声明[可见度] interface 接口名称 [extends 其他的接口名] { //...

接口相关说明

java成为面向对象编程语言的原因是有两种机制存在:抽象类(abstract class)和接口(interface)

接口只是一个规范(其重要程度可以理解为word目录),里面的方法都是空的,可以理解为一系列方法和特征的集合,是某个事物对外提供的一些功能的说明

接口是特殊的抽象类(抽象类可以理解为没有必要实现的类)

java是单继承的,接口可以弥补一个类实现多个接口

接口的声明

[可见度] interface 接口名称 [extends 其他的接口名] {
        // 声明变量
        // 抽象方法
}

eg

/* 文件名 : NameOfInterface.java */
import java.lang.*;
//引入包
 
public interface NameOfInterface
{
   //任何类型 final, static 字段
   //抽象方法
}
/* 文件名 : Animal.java */
interface Animal {
   public void eat();
   public void travel();
}

接口的实现

...implements 接口名称[, 其他接口名称, 其他接口名称..., ...] ...

eg

/* 文件名 : MammalInt.java */
public class MammalInt implements Animal{
 
   public void eat(){
      System.out.println("Mammal eats");
   }
 
   public void travel(){
      System.out.println("Mammal travels");
   } 
 
   public int noOfLegs(){
      return 0;
   }
 
   public static void main(String args[]){
      MammalInt m = new MammalInt();
      m.eat();
      m.travel();
   }
}

接口的继承

// 文件名: Sports.java
public interface Sports
{
   public void setHomeTeam(String name);
   public void setVisitingTeam(String name);
}
 
// 文件名: Football.java
public interface Football extends Sports
{
   public void homeTeamScored(int points);
   public void visitingTeamScored(int points);
   public void endOfQuarter(int quarter);
}
 
// 文件名: Hockey.java
public interface Hockey extends Sports
{
   public void homeGoalScored();
   public void visitingGoalScored();
   public void endOfPeriod(int period);
   public void overtimePeriod(int ot);
}

接口的意义

让代码有更强的可拓展性

有利于代码的规范、后期维护

保证代码的低耦合

让代码更安全、严密

接口和抽象类区别

抽象类体现的是模板式设计(可以有非抽象方法、可以定义静态方法、可以有普通变量)

接口体现的是一种规范(只能有抽象方法、不可以定义静态方法、变量全部为静态常量)

接口的实际应用

 

本文地址:https://blog.csdn.net/qq_39944780/article/details/107362172