IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> java接口详解+练习题(入门可看) -> 正文阅读

[Java知识库]java接口详解+练习题(入门可看)

一、接口概述
接口是比抽象更高的抽象,它是一个完全抽象的类,即抽象方法的集合。接口使用关键字interface来声明。

二、接口定义的结构
[修饰符] interface 接口名称{
抽象方法1;
抽象方法2;

举例:定义一个Country接口,有一个国籍nationality属性和一个speak方法

interface 接口名称 // 定义抽象类
{
    final 数据类型 成员名称 = 常量; //数据成员必须赋初值
    abstract 返回值的数据类型 方法名称(参数...;
    //抽象方法,注意在抽象方法里,没有定义方法主体
}

关于接口定义的注意事项:

  • 接口中也有变量,但是接口会隐匿地指定为public static final变量

  • 接口中的抽象方法具有public和abstract修饰符,也只能是这两个修饰符,其他修饰符都会报错 -

  • 抽象类之间可以继承,同样的,接口之间也可以继承。接口之间继承时,使用的关键字同样为 extends

  • 接口里的“抽象方法”只要做声明即可,而不用定义其处理的方式;

  • 数据成员必须赋初值

三、接口的实现
当类实现接口的时候,类要实现接口中的所有方法,否则类必须声明为抽象类。类使用关键字implements关键字实现接口。

举例:
注意:

  1. ?接口无法直接实例化,接口是通过类来实现的implements
  2. ?一个类可以实现多个接口,接口间用逗号分隔
  3. ?如果实现某接口的类不是抽象类,则该类必须实现指定接口的所有抽象方法
  4. ?抽象类也可以实现接口(举例)implements
  5. ?接口这间可以多继承 例如:
    *接口之间称为继承extends , 抽象类对接口的关系是实现implements 类与接口的关系也是实现implements
interface IA{ 
void ma(); 
} 
interface IB{ 
void mb(); 
} 
interface IC extends IA, IB{ //IC 同时继承 IA 和 IB 两个接口 
void mc(); 
} 

四、接口与抽象类
1.接口与抽象类的相同点
?都可以被继承
?都不能被直接实例化
?都可以包含抽象方法
?派生类必须实现未实现的方法

2.接口与抽象类的不同点
?接口支持多继承,抽象类不能实现多继承
?一个类只能继承一个抽象类,但可以实现多个接口
?接口中的成员变量只能用publci static final类型的,抽象类中的成员变量可以是各种类型的
?接口只能定义抽象方法;抽象类既可以定义抽象方法,也可以定义普通方法
?接口中不能含有静态代码块以及静态方法,抽象类可以有静态代码块和静态方法

五.练习题了解
请添加图片描述

package zhou;
public interface interfaceA {
    public abstract String shi();
    public abstract String shu();
}
class Student implements interfaceA{
    private String eatery;
    private String dorm;
    Student(String eatery,String dorm){
        this.eatery=eatery;
        this.dorm=dorm;
    }
    public String shi() {
        return "食堂"+eatery;
    }
    public String shu() {
        return "宿舍"+dorm;
    }
}
class Teacher implements interfaceA {
    private String teachereatery;
    private String schoolflat;
    Teacher(String teachereatery,String schoolflat){
        this.teachereatery=teachereatery;
        this.schoolflat=schoolflat;
    }
    public String shi() {
        return "教师食堂"+teachereatery;
    }
    public String shu() {
        return "学校公寓"+schoolflat;
    }
}
class ParentsofStudents implements interfaceA{
    private String resthouse;
    ParentsofStudents(String resthouse){
        this.resthouse=resthouse;
    }
    public String shi() {
        return "招待所"+resthouse;
    }
    public String shu() {
        return "招待所"+resthouse;
    }
}
public class Hong {
    public static void main(String[] args) {
        Student s=new Student(null, null);
        s.shi();
        s.shu();
        Teacher t=new Teacher(null, null);
        t.shi();
        t.shu();
        ParentsofStudents j=new ParentsofStudents(null);
        j.shi();
        j.shu();
    }
}

六.接口的扩展
接口是Java实现多继承的一种机制,一个类只能继承一个父类,但如果需要一个类继承多个抽象方法的话,就明显无法实现,所以就出现了接口的概念。一个类只可以继承一个父类,但却可以实现多个接口。

接口与一般类一样,均可通过扩展的技术来派生出新的接口。原来的接口称为基本接口或父接口,派生出的接口称为派生接口或子接口。通过这种机制,派生接口不仅可以保留父接口的成员,同时也可加入新的成员以满足实际的需要。

同样的,接口的扩展(或继承)也是通过关键字extends来实现的。有趣的是,一个接口可以继承多个接口,这点与类的继承有所不同。
接口扩展的语法:

**interface 子接口名称 extends 父接口1,父接口2...
{
    ...
}**
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-11-23 12:12:19  更:2021-11-23 12:13:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 1:51:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码