*接口的定义与使用
package com.jiekou.bean;
/*
* 一、接口的使用
* 1、接口使用interface来定义
* 2、Java中接口和类是并列的结构
* 3、如何定义接口;定义接口中的成员(就好像定义类中的成员)
* 在JDK7及以前的时候:只能定义全局常量和抽象方法
* 全局常量:public static final
* 抽象方法:public abstract
* 注:此处所说版本为最常用的版本
* 4、接口中不能定义构造器,这也说明了接口不能实例化
* 5、所以在Java开发中,接口通过让类去实现(implement)的方式来使用
*
* 如果实现类覆盖了接口中的所有的抽象方法,则此实现类就可以实例化
* 如果实现类没有覆盖接口中所有的实现方法,则此实现类仍为一个抽象类
* ~~~~是不是挺迷糊,那么请看以下代码
* */
public class InterFace {
public static void main(String[] args) {
//实例化覆盖了接口中所有抽象方法的People类
//什么是实例化,请看https://blog.youkuaiyun.com/m0_53777734/article/details/115254948
People p = new People();
p.eat();
}
}
interface Stander{
// public static final int high = 165;
// public static final String surround = "36D";
//由于接口中定义常量时,只能定义全局常量,所以“public static final”
//可以省略,编译器也认为是全局常量
int high = 165;
String surround = "36D";
//抽象方法
// public abstract void study();
// public abstract void eat();
//同理,此处的“public abstract”也可以省略
void study();
void eat();
}
//此时只覆盖了接口中的一个抽象方法,所以这个类还是抽象类,要加上abstract才能不报错
//abstract class People implements Stander{
// public void study(){
// System.out.println("好好学习");
// }
//}
//此时覆盖了接口中的所有的抽象方法,所以这个实现类就可以实例化了
class People implements Stander{
public void study(){
System.out.println("好好学习");
}
public void eat(){
System.out.println("大口吃肉,大口喝酒");
}
}
//上面的几行代码就把接口中的所有的抽象类就全部覆盖,所以可以在main函数中实例化类