Java接口定义和实现

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

1 [修饰符] interface 接口名 [extends 父接口名列表]{
2 [public] [static] [final] 常量;
3 [public] [abstract] 方法;
4 }

修饰符:可选参数public,如果省略,则为默认的访问权限;

接口名:指定接口的名称,默认情况下,接口名必须是合法的Java标示符,一般情况下,要求首字符大写;

extends  父接口名列表:可选参数,指定定义的接口继承于哪个父接口。当使用extends关键字时,父接口名为必选参数。

方法:接口中的方法只有定义而不能有实现

例如:

public interface IStudent {
    final int X = 10;

    float getScore(int studentNo);

    int getStudentAge(int StudentNo);
}

2.接口的定义完了,下面就是接口的实现了:

  Java实现接口,用implements:

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

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

 1 public class Cire implements CalInterface
 2 {
 3     public float getArea(float r)
 4     {
 5         float area=PI*r*r;//计算圆面积并赋值给变量area
 6         return area;//返回计算后的圆面积
 7     }
 8     public float getCircumference(float r)
 9     {
10         float circumference=2*PI*r;      //计算圆周长并赋值给变量circumference
11         return circumference;           //返回计算后的圆周长
12     }
13     public static void main(String[] args)
14     {
15         Cire c = new Cire();
16         float f = c.getArea(2.0f);
17         System.out.println(Float.toString(f));
18     }
19 }  

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

时间: 2024-08-28 23:41:10

Java接口定义和实现的相关文章

Java接口定义(interface)及使用(implements)

1. 在类的声明中,通过关键字extends来创建一个类的子类.一个类通过关键字implements声明自己使用一个或者多个接口.extends 是继承某个类, 继承之后可以使用父类的方法, 也可以重写父类的方法; implements 是实现多个接口, 接口的方法一般为空的, 必须重写才能使用2.extends是继承父类,只要那个类不是声明为final或者那个类定义为abstract的就能继承,JAVA中不支持多重继承,但是可以用接口 来实现,这样就要用到implements,继承只能继承一个

java接口定义和作用

接口语法 1.接口是一种引用类型,可以等同看作类.修饰符 interface 接口名 2.接口中只能出现常量和抽象方法 3.接口其实是一个特殊的抽象类,特殊在接口是完全抽象的 4.接口中没有构造方法,接口也无法实例化 5.接口和接口之间可以多继承 6.一个类可以实现多个接口,这里的实现等同于继承 7.一个非抽象的类实现接口,需要将接口中所有方法实现/重写/覆盖 #java package study1; public interface A{ //常量都是public static final,

java接口定义统一的异常处理,aop

统一异常处理,aop import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.*; import org.springframework.stereotype.Component; import java.util.HashMap; import java.util.Map; @Aspect @Component public class TestAop { /** * 定义切入点 */ @P

教你在Java接口中定义方法

基本上所有的Java教程都会告诉我们Java接口的方法都是public.abstract类型的,没有方法体的. 但是在JDK8里面,你是可以突破这个界限的哦. 假设我们现在有一个接口:TimeClient,其代码结构如下: import java.time.*; public interface TimeClient { void setTime(int hour, int minute, int second); void setDate(int day, int month, int yea

Java 8新特性-接口定义增强

为了解决当原有的接口中方法不足时,向原有的接口中添加新的方法,该接口下的N多实现类也需要重写该方法的问题!Java8引入了接口定义增强概念! Java8 打破了原有的接口的方法定义: 公共的.抽象的  默认方法: Java 8 还允许我们给接口添加一个非抽象的方法实现,只需要使用 default 关键字即可,这个特征又叫做扩展方法. 在实现该接口时,该默认扩展方法在子类上可以直接使用,它的使用方式类似于抽象类中非抽象成员方法. 但扩展方法不能够重载 Object 中的方法.例如:toString

java中的接口定义和接口实现

1.接口的定义 使用interface来定义一个接口.接口定义同类的定义类似,也是分为接口的声明和接口体,其中接口体由常量定义和方法定义两部分组成.定义接口的基本格式如下: [修饰符] interface 接口名 [extends 父接口名列表]{ [public] [static] [final] 常量; [public] [abstract] 方法; } 修饰符:可选,用于指定接口的访问权限,可选值为public.如果省略则使用默认的访问权限. 接口名:必选参数,用于指定接口的名称,接口名必

java接口中定义成员变量

//抽象类中可以定义如下成员变量:public abstract class People { public String name; public int age; public abstract void work(); } 而如下截图中的People接口中,定义成员变量报错: 接口的含义理解:接口可以理解成统一的"协议",而接口中的属性也属于协议中的内容;但是接口的属性都是公共的,静态的,最终的 接口的成员特点: A:成员变量 只能是常量.默认修饰符 public static

Java 接口和抽象类区别

1.概述 一个软件设计的好坏,我想很大程度上取决于它的整体架构,而这个整体架构其实就是你对整个宏观商业业务的抽象框架,当代表业务逻辑的高层抽象层结构 合理时,你底层的具体实现需要考虑的就仅仅是一些算法和一些具体的业务实现了.当你需要再开发另一个相近的项目时,你以前的抽象层说不定还可以再次利用 .面对对象的设计,复用的重点其实应该是抽象层的复用,而不是具体某一个代码块的复用. 说到了抽象,我就不能不提到曾让我头痛的Java接口和Java抽象类了,这也是本文我想说的重点. 既然面向对象设计的重点在于

JAVA8新特性——接口定义增强

JAVA9都要出来了,JAVA8新特性都没搞清楚,是不是有点掉队哦~ 接口定义增强 在JDK1.8以前,接口是定义的: 接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明.一个类通过继承接口的方式,从而来继承接口的抽象方法. 在JDK1.8之前,接口有如下特性: 接口中每一个方法也是隐式抽象的,接口中的方法会被隐式的指定为 public abstract(只能是 public abstract,其他修饰符都会报错). 接口中