Java语言入门教程(十六):Java语言中的接口

通过前面几篇文章的学习,初学者可以初步掌握Java语言中继承的概念和使 用方法,对抽象类的使用也有一定的理解。值得注意的是,Java中类与类的继承 是单继承,也就是一个子类最多同时可以继承一个父类。那么让我们看下面的例 子。

假设我们要开发一个游戏系统,而游戏系统中有三种飞行器:飞机、小鸟、 蜘蛛侠。这三种飞行器都需要实现起飞,飞行,降落的逻辑,但是实现方法各不 相同。那么这三个类应该有一个抽象类作为父类,规范共同行为。

package com.csst.inter;
public abstract class Flyer {
    public abstract void takeoff();
    public abstract void fly();
    public abstract void land();
}
package com.csst.inter;
public class SpiderMan extends Flyer {
    @Override
    public void fly() {
       // TODO Auto-generated method stub
    }
    @Override
    public void land() {
       // TODO Auto-generated method stub
    }
    @Override
    public void takeoff() {
       // TODO Auto-generated method stub
    }
}
// Plane,Bird省略

让我们仔细看Flyer这个抽象类,它的特点是没有具体方法,所有方法都是抽 象方法,而且没有变量。而如果这时,SpiderMan类需要继承另外一个父类,就 做不到了,因为Java语言中的继承是单继承的。而如果SpiderMan不继承Flyer类 也不可以,因为所有飞行器都用Flyer类型来规范。正为了解决Java中单继承的 问题,Java中有了接口的概念。我们可以如下修改上面代码:

package com.csst.inter;
public interface Flyer {
    public  void takeoff();
    public  void fly();
    public  void land();
}
package com.csst.inter;
public class SpiderMan implements Flyer {
    public void fly() {
        // TODO Auto-generated method stub
    }
    public void land() {
       // TODO Auto-generated method stub
    }
    public void takeoff() {
       // TODO Auto-generated method stub
    }
}

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索java
, public
, todo
, method
, 一个
, 单继承
, void
Java语言学习入门
,以便于您获取更多的相关知识。

时间: 2024-10-13 16:16:51

Java语言入门教程(十六):Java语言中的接口的相关文章

Java 并发/多线程教程(十二)-JAVA同步块

本系列译自jakob jenkov的Java并发多线程教程,个人觉得很有收获.由于个人水平有限,不对之处还望矫正! 一个Java同步块标记一个方法或一个代码块作为同步.可以使用Java同步块来避免竞态条件. java同步关键字       在Java中同步的块被标记为Synchronized关键字.Java中的同步块在某些对象上是同步的.在同一对象上同步的所有同步块只能在同一时间内执行一个线程.所有试图进入同步块的其他线程都被阻塞,直到同步块中的线程退出该块. Synchronized关键字可以

Java语言入门教程(六):Java语言中的static修饰符

在Java类中,我们常常会看到static关键字,往往被称为静态的.Static修 饰符可以用来修饰数据成员,方法成员,但是不能修饰类(此处指外部类),不 能修饰构造方法.如: package com.csst.vo; public class User { private String name; private static int count; public String getName() { return name; } public void setName(String name)

零基础易语言入门教程(一)_易语言

易语言简介 易语言是一门以中文作为程序代码编程语言.以"易"著称.创始人为吴涛.早期版本的名字为E语言.易语言最早的版本的发布可追溯至2000年9月11日.创造易语言的初衷是进行用中文来编写程序的实践.从2000年至今,易语言已经发展到一定的规模,功能上.用户数量上都十分可观. 易语言是可视全中文易学易用的编程高级语言,近年来大家都积极求学,可是怎么学好它啦?小编带大家认识易语言,并使用易语言编写第一个教程. 方法和步骤如下所示: 1.下载易语言软件: 大家直接百度"易语言5

FrontPage 2003基础教程(十六) 在网页中插入链接栏

1.光标在要插入链接栏的地方或选中共享边框 2.点击"插入"(或是编辑"链接栏"属性),Web组件,找到"链接栏",有两个选项:基于导航结构的链接栏:自定义链接栏 3.点下一步 4.选择"样式",有多种,自定. 可以选中"使用鲜艳颜色"和"使用动态图形" 5.再选择"横向"或"纵向" 6.点"完成"进入"属性"

零基础易语言入门教程(二)之编程思路_易语言

易语言简介: 易语言是一门以中文作为程序代码编程语言.以"易"著称.创始人为吴涛.早期版本的名字为E语言.易语言最早的版本的发布可追溯至2000年9月11日.创造易语言的初衷是进行用中文来编写程序的实践.从2000年至今,易语言已经发展到一定的规模,功能上.用户数量上都十分可观. 上一篇跟大家讲了零基础易语言入门教程(一)编写第一个程序,然后接下来大家应该自己把支持库和易语言组件里面的控件全部认真的看一下,下面我直接跟大家分享下易语言简单编程思路. 方法和步骤如下所示: 1.易语言程序

零基础易语言入门教程(五)之逻辑型数据类型_易语言

在上篇文章给大家介绍了零基础易语言入门教程(四)之数据类型,上篇针对数值到文本类型知识,今天给大家介绍下逻辑型数据. 具体方法和步骤如下所示: 1.逻辑型数据非真即假: 首先申请一个局部变量(A)类型为:逻辑型,编写代码为:A=1>2,那么输出的结果应为假,因等于1是赋值与1,然后代码中写道1大于2,所以这是假的,见下图所示: 2.关系运算符: 在上图大家需注意的是,A后面的等于号是赋值符号,而后面的≥,≠,<一些符号则是关系运算符. 关系运算符不是非要设置变量给其赋值才可以使用的,同样他可以

JAVA之旅(十六)——String类,String常用方法,获取,判断,转换,替换,切割,子串,大小写转换,去除空格,比较

JAVA之旅(十六)--String类,String常用方法,获取,判断,转换,替换,切割,子串,大小写转换,去除空格,比较 过节耽误了几天,我们继续JAVA之旅 一.String概述 String时我们很常用的数据类型,他也是一个类的使用 我们来看 package com.lgl.hellojava; //公共的 类 类名 public class HelloJJAVA { public static void main(String[] args) { /** * String */ /**

Android开发入门(十六)其他视图 16.2 WebView

WebView能够让你在activity中去内嵌一个web浏览器.如果你的应用需要内嵌一些web内容的话,这是非 常有用的. 下面展示如何在activity中通过编码的方式去加载网页中的内容. 1. 新建一个工 程,WebView. 2. main.xml中的代码. <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.andr

Kinect for Windows SDK开发入门(十六)面部追踪上

在前面一篇文章中,我们使用Emgu来识别人的脸部,当时的Kinect SDK版本是1.0,五月份发布1.5版本的SDK之后,我们就能够直接使用Kinect实现人脸识别,而不需要借助第三方类库. SDK1.5中新增了人脸识别类库:Microsoft.Kinect.Toolkit.FaceTracking使得在Kinect中进行人脸识别变得简单,该类库的源代码也在Developer Toolkit中.在Developer Toolkit中也自带人脸识别的例子,您也可以打开运行或者查看源代码. 开发入

Android开发入门(十六)其他视图 16.1 AnalogClock和DigitalClock

AnalogClock视图显示了一个模拟的时钟,其中有一个时针和一个分针.与其相对的是DigitalClock视图 ,它可以显示数字模拟时钟.这两个视图只能显示系统时间,不允许显示一个特定时区的时间.因此,如果 你想要显示一个特定时区的时间,那么你就不得不去实现你自己的自定义控件了. 注:关于如何自定 义控件,请查看如下网址. http://developer.android.com/guide/topics/ui/custom- components.html 使用AnalogClock与Di