接口
/*
* 接口:初期理解,可以认为是一个特殊的抽象类。
* 当抽象类中的方法都是抽象的,那么该类可以通过接口方式来表示。
*
* class 用于定义类
* interface 用于定义接口
*
* 接口定义时,格式特点:
* 1,接口中常见定义:常量,抽象方法
* 2,接口中的成员都有固定修饰符。
* 常量:public static final
* 方法:public abstract
*记住:接口中的成员都是public
*
* 注意:接口是不可以创建对象的,因为有抽象方法。
* 需要被子类实现,子类对接口中的对象全都覆盖后,子类才可以实例化。
* 否则,子类是一个抽象类。
*
* 类与类之间是继承关系,
* 类与接口之间是实现关系
* 接口与接口之间是继承关系。
*
* Java支持多继承,只存在于接口与接口之间之继承。
*/
interface interA
{
public static final int NUM = 3;
public abstract void show();
}
class Demo
{
public void showOne(){}
}
class Test extends Demo implements interA //继承了Demo父类中的方法,同时又继承了inA接口
{
public void show(){}
}
//下面三个接口的继承关系
interface A
{
public abstract void methodA();
}
interface B extends A
{
public abstract void methodB();
}
interface C extends B,A //可以多继承
{
public abstract void methodC();
}
//继承到这里,就要将上面三个方法全都覆盖掉
class D implements C
{
public void methodA(){}
public void methodB(){}
public void methodC(){}
}
public class _08接口 {
public static void main(String[]args)
{
Test t = new Test();
System.out.println(t.NUM);
System.out.println(Test.NUM);
System.out.println(interA.NUM);
}
}
接口的特点
//球员:运动
class Sport
{
public void Play(){}
}
//体系的功能,就定义成接口
interface Study
{
public abstract void study();
}
//继承父类,并加载接口
class ZhangSan extends Sport implements Study
{
public void study()
{
System.out.println("学习Java功能");
}
public void Play()
{
System.out.println("运动功能");
}
}
public class _09接口举例体现 {
public static void main(String[]args)
{
ZhangSan zs = new ZhangSan();
zs.study();
zs.Play();
}
}
//学生类
class Stu
{
String name;
int age;
char sex;
public void Play()
{
}
}
interface Smoke
{
abstract void smoke();//抽象
}
class LiSi extends Stu implements Smoke
{
public void Play()
{
System.out.println("学习功能");
}
public void smoke()
{
System.out.println("吸烟");
}
}