Java学习——39、接口

Java中的类只能单继承。

但接口可以多继承。

接口(interface)是一组抽象方法、常量和内嵌类型的集合。接口是一种数据类型,接口采用抽象的形式来描述约定。

1、  接口的声明

用关键字interface来声明接口,其语法格式如下:

【public】 interface 接口【extends 父接口列表】

{

           【public【final数据类型成员变量=常量值;

           【public【abstract】返回值类型成员方法【(参数列表)】;

}

注:(1)接口可继承多个父接口,中间用逗号隔开

(2)接口中的成员变量只能是常量

(3)接口中的方法只能是抽象方法

(4)接口的访问控制权限只有public或缺省

(5)接口不能创建实例。

例:声明接口

public interface Area{

public abstract double area();

}

2、接口的实现

用关键字implements声明一个类来实现接口。其语法格式如下:

【修饰符】 class 【extends 父类】【extends 接口列表】

例:声明类Circle来实现上述接口Area

public class Circle implements Area{

private double radius;

public  Circle(double radius) {

this.radius=radius;

}

public  double area() {

return Math.PI*radius*radius;

}

}

注:一个非抽象类如果要实现接口,必须实现接口中的所有抽象方法,否则就要声明为抽象类。

3、接口可以多继承。

一个接口可以继承多个父接口,例:有两个接口Area和Zc,分别声明如下:

public interface Area{

public abstract double area();

}

public interface Zc{

public abstract double zc();

}

再声明一个接口Js,可以继承这两个接口,并可声明新的抽象方法。

public interface Js extends Area,Zc{

public abstract double get();

}

此Js接口继承了Area和Zc接口,因此继承了Area和Zc中的两个抽象方法area()和zc(),同时还有一个新增的抽象方法get。

如此一个类要继承此Js接口,必须实现这三种方法。

4、  简单例题

以上述为简单例题,有两个接口Area:计算面积,Zc:计算周长。

两接口中分别各有一个抽象方法,area()可计算面积;zc()可计算周长。

以类Circle来实现以上两个接口。

完整代码如下:

//Area.java

public interface Area {

public abstractd ouble area();

}

//Zc.java

public interface Zc {

public abstract double zhouchang();

}

//Circle.java

public class Circle implements Area,Zc{//实现两个接口,中间用逗号隔开

private double radius;

public  Circle(double radius) {

this.radius=radius;

}

public  double area() {//实现Area接口中的抽象方法

return Math.PI*radius*radius;

}

public  Circle() {

radius=1.0;

}

public double getRadius() {

returnradius;

}

public double zhouchang() {//实现Zc接口中的抽象方法

return 2*Math.PI*radius;

}

public static void main(String args[]) {

Circle c=new Circle();

System.out.println("半径为"+c.getRadius()+"的圆\n面积为:"+c.area()+"\n周长为:"+c.zhouchang());

Circle c1=new Circle(3.3);

System.out.println("半径为"+c1.getRadius()+"的圆\n面积为:"+c1.area()+"\n周长为:"+c1.zhouchang());

}

}

其运行结果如下:

半径为1.0的圆

面积为:3.141592653589793

周长为:6.283185307179586

半径为3.3的圆

面积为:34.21194399759285

周长为:20.734511513692635

(0)

相关推荐

  • 2020最新六年级数学上册单元测试卷全册,期末复习必备练习!

    一.动脑筋填空,相信你能行!(每空1分,共18分) (1)一个圆片的周长是6.28厘米,这个圆的直径是(  )厘米,面积是(  )平方厘米. (2)如果一圆的半径扩大3倍,它的周长扩大(   )倍,面 ...

  • java学习——110.实现Runnable接口

    因为Java只支持单继承,如果已经继承了一个类,就不能再继承Thread类了,此时,要实现多继承,可以实现Runnable接口. 1.Runnable接口 Runnable接口就是为实现多线程的,它里 ...

  • Java学习笔记(四):理解接口 事件监听器

    一.接口 父类和子类比较,父类是一个比子类更抽象的类.这个抽象体现在两个方面:一是父类的属性和方法比子类的少:二是,子类的方法比父类的方法更加具体. 当父类非常抽象时,或者我们仅仅知道这个类的对象应该 ...

  • Java学习-注解和反射

    注解 java.Annotation Annotation的作用:可以呗其他程序读取 Annotation的格式 注解是:@注释名 在代码中存在,还可以添加一些参数 ​@SuppressWarning ...

  • Java学习-多线程

    多线程 任务(Task).进程(Process).线程(Thread) 进程的创建 1.继承Thread类 自定义线程类继承Thread类 重写run()方法,编写线程执行体 创建线程对象,调用sta ...

  • Java学习-Mybatis

    Mybatis Maven依赖: <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --> <dependenc ...

  • Java 学习笔记

    您对计算机(电脑)有了解吗? 计算机组成 系统软件 直接和硬件交互的软件叫系统软件,例如 win7.win8.Linux.mac等操作系统 应用软件 通常在运行在系统软件上,也就是在系统软件上开发的软 ...

  • Java学习-126.2048代码

    本篇帖的是按钮的代码. 因为按钮比较多,包括菜单项的动作,为了区分,我用了两个内部类来实现这两部分代码. //本类是Game_2048类的内部类,用来实现上.下.左.右四个按钮,以及重新开始和退出游戏 ...

  • Java学习—125.2048代码

    本篇帖的是部分动作代码. 每个方法前都有注释说明本方法的功能. //随机选取一个位置,并填入数字2.如果此位置中已有数字,那么换一个位置. public void rule(){ x=ran.next ...

  • Java学习—124.2048代码

    游戏的主界面的代码在类game_2048中. 本类主要包括两个方面: 一是布局. 二是动作,按钮的动作. 其中,动作又有菜单动作,按钮动作.而按钮动作又有多方面,在下一篇的代码中会有注释说明. 本篇帖 ...