Java学习之接口概念

  Java语言只支持单重继承,不支持多继承,即一个类只能有一个父类。但是在实际应用中,又经常需要使用多继承来解决问题。为了解决该问题,Java语言提供接口来实现类的多继承问题。

1.接口的定义

  使用interface来定义一个接口。接口定义与类的定义相似,也是分为接口的声明和接口体,其中接口体由变量定义和方法定义两部分组成。定义接口的基本语法格式如下:

  [修饰符]interface  接口名  [extends  父接口名列表]{  

      [public] [static] [final]  变量;        

      [public] [abstract]   方法;                   

    }

参数 说明
   修饰符 可选参数,用于指定接口的访问权限,可选值为public。如果省略则使用默认的访问权限
   接口 必选参数,用于指定接口的名称,接口名必须是合法的Java标识符,一般情况下,要求首字母大写
   extends父接口名列表 可选参数,用于指定要定义的接口继承于哪个接口。当使用extends关键字时,父接口名为必选参数
 方法     接口中的方法只有定义而没有实现

定义一个用于计算的接口,在该接口中定义一个常量PI 和两个方法。

public interface CalculateInface {
  public static final double PI = 3.14159; //定义用于表示圆周率的常量PI

  public double getCircumference(double r); //定义一个用于计算周长的方法

  public double getArea(double r); //定义一个用于计算面积的方法
}

注意: 与Java 类文件一样,接口文件的文件名必须与接口名相同。

2.接口的实现

接口在定义后,就可以在类中实现该接口。在类中实现接口可以使用 implements 关键字,基本语法格式如下:

  [修饰符] class <类名>  [extends  父类名] implements  接口列表{

  }  

实现接口的语法格式的参数说明:

参数 说明
   修饰符   可选参数,用于指定类的访问权限,可选值为public、abstract 和 final
   类名   必选参数,用于指定类的名称,类名必须是合法的Java标识符,一般情况下,要求首字母大写
   extends父类名列表   可选参数,用于指定要定义的类继承于哪个父类。当使用extends关键字时,父类名为必选参数
 implements接口列表   当接口列表中存在多个接口名时,各个接口之间是用逗号分隔

  在类中实现接口时,方法名、返回值类型、参数的个数及类型必须与接口中的完全一致,并且必须实现接口中的所有方法。

  编写一个Circle的类,实现上文定义的接口 CalculateInface 。

public class Circle implements CalculateInface{

  public double getCircumference(double r) {
  double circumference = 2*PI*r ; //计算圆周长并返回
  return circumference;
  }

  public double getArea(double r) { //计算圆的面积并返回
  double area = PI*r*r ;
  return area;
  }
}

  在类的继承中,只能做单重继承,而实现接口时,一次则可以实现多个接口,每个接口间使用逗号“,”分隔,这是就可能出现变量或方法冲突的情况。解决该问题时,如果变量冲突,则需要明确指定变量的接口,可以通过“接口名.变量”实现。如果出现方法冲突,则只要实现一个方法即可。

时间: 2024-08-08 21:08:49

Java学习之接口概念的相关文章

Java学习之接口的子类必须实现接口的全部方法吗?

接口的子类必须实现接口的全部方法吗?      接口的子类必须实现接口中全部的方法吗?答案:不是.原因如下:      如果子类是非抽象类,则必须实现接口中的所有方法:      如果子类是抽象类,则可以不实现接口中的所有方法,因为抽象类中允许有抽象方法的存在! 1.抽象类定义 抽象类往往用来表征对问题领域进行分析.设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象.通常在编程语句中用 abstract 修饰的类是抽象类.在C++中,含有纯虚拟函数的类称为抽象类,它不能生

java学习之接口

一.基本概念 接口(Interface),在java编程语言中是一个抽象类型,是抽象方法的集合.接口通常以interface来声明.一个类通过继承接口的方式,从而来继承接口的抽象方法. 如果一个类只由抽象方法和全局常量组成,那么这种情况下不会将其定义为一个抽象类.只会定义为一个接口,所以接口严格的来讲属于一个特殊的类,而这个类里面只有抽象方法和全局常量,就连构造方法也没有. 二.接口的使用 1.由于接口里面存在抽象方法,所以接口对象不能直接使用关键字new进行实例化.接口的使用原则如下: (1)

java学习之接口、多态和内部类

接口是一组行为的规范.定义.接口是面向对象编程体系中的思想精髓之一,使用接口可以让我们的程序更加利于变化. 接口的格式: interface 接口名称{ 全局变量: 抽象方法: } 接口中的成员修饰符是固定的,成员常量用public static  final修饰:成员函数用public  abstract修饰,接口的出现将“多继承”通过多实现来体现.接口的使用也有一定的规则:接口可以继承多个接口,一个类中可以实现接口和多接口,抽象类实现接口可以不实现方法:接口中的所有实现方法的访问权限都是pu

Java学习之面向对象(概念性质) &lt;好程序员特训营&gt;

<A href="http://www.goodprogrammer.org/" target="blank">android培训</a>------我的java笔记,期待与您交流! 1.面向对象:三个特征:封装,继承,多态 2.开发过程:其实就是找对象使用.没有对象,就创建一个对象 3.类和对象的关系. 现实生活中的对象:张三 李四. 想要描述:提取对象中共性内容.对具体的抽象. 描述时:这些对象的共性有:姓名,年龄,性别,学习java功能

Java学习笔记之接口

一.接口的概念与定义 首先考虑一个简单的接口的定义: public interface Output { int MAX_LINE = 40; void out(); void getData(String msg); } 定义接口使用关键字interface 修饰符interface前面的public可以省略,如果省略,则采用默认访问控制,即只有在相同包结构的代码才可以访问此接口 接口不可以有构造方法(区别于类中的构造方法) 接口里面的所有成员,包括常量.方法等都是public访问权限,所以在

java基础学习总结——接口

java基础学习总结——接口 一.接口的概念 JAVA是只支持单继承的,但现实之中存在多重继承这种现象,如“金丝猴是一种动物”,金丝猴从动物这个类继承,同时“金丝猴是一种值钱的东西”,金丝猴从“值钱的东西”这个类继承,同时“金丝猴是一种应该受到保护的东西”,金丝猴从“应该受到保护的东西”这个类继承.这样金丝猴可以同时从 “动物类”.“值钱的东西类”.“应该受到保护的东西” 这三个类继承,但由于JAVA只支持单继承,因此金丝猴只能从这三个类中的一个来继承,不能同时继承这三个类.因此为了封装现实生活

好程序员Java学习路线Java bean是个什么概念

好程序员Java学习路线Java bean是个什么概念,Bean的中文含义是"豆子",顾名思义JavaBean是一段Java小程序.JavaBean实际上是指一种特殊的Java类,它通常用来实现一些比较常用的简单功能,并可以很容易的被重用或者是插入其他应用程序中去.所有遵循一定编程原则的Java类都可以被称作JavaBean.一. Java Bean技术概述??????? Java Bean是基于Java的组件模型,由属性.方法和事件3部分组成.在该模型中,JavaBean可以被修改或

JavaSE入门学习21:Java面向对象之接口(interface)(二)

一接口实现的多态 在上一篇博文:JavaSE入门学习20:Java面向对象之接口(interface)(一)中提到了接口的实现存在多态性,那么 这一篇主要就要分析接口实现的多态. 实例一 Test.java源文件代码: public class Test{ public static void main(String[] args){ //实现接口Singer Singer s1 = new Student("Amy"); s1.sing(); s1.sleep(); s1.study

JavaSE入门学习20:Java面向对象之接口(interface)

一Java接口 接口(英文:interface)是抽象方法和常量值的集合,在Java编程语言中是一个抽象类型,接口通常以interface来声 明.类是一种具体实现体,而接口定义了某一批类所需要遵守的规范,接口不关心这些类的内部数据,也不关心这些 类里方法的实现细节,它只规定这些类里必须提供某些方法.一个类或接口通过继承接口的方式,从而来继承接口的 抽象方法. 接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念.类描述对象的属性和方法.接口则包含 类要实现的方法.除非实现接口的类是抽