接口:初期理解,可以认为是一个特殊的抽象类,当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示。
class用于定义类
interface用于定义接口
接口定义时,格式特点:1.接口中常见定义:常量、抽象方法。2.接口中的成员都有固定修饰符。
常量:public static final
方法:public abstract
重点:接口中的成员都是public的。
接口:是不可以创建对象的,因为有抽象方法。
需要被子类事项,子类对接口中的抽象方法全覆盖后,子类才可以实例化。否则子类是一个抽象类。
接口可以被类多实现,也是对多继承不支持的转换形式,Java支持多实现。
不支持多继承的原因:避免父类中的方法有冲突,会导致此类调用的时候出现问题
多继承-->方法主体
class用于定义类
interface用于定义接口
接口定义时,格式特点:1.接口中常见定义:常量、抽象方法。2.接口中的成员都有固定修饰符。
常量:public static final
方法:public abstract
重点:接口中的成员都是public的。
接口:是不可以创建对象的,因为有抽象方法。
需要被子类事项,子类对接口中的抽象方法全覆盖后,子类才可以实例化。否则子类是一个抽象类。
接口可以被类多实现,也是对多继承不支持的转换形式,Java支持多实现。
不支持多继承的原因:避免父类中的方法有冲突,会导致此类调用的时候出现问题
多继承-->方法主体
多实现-->没有方法主体
接口的特点:
1.接口是对外暴露的规则
2.接口是程序的功能扩展
3.接口可以用来多实现
4.类与接口之间是实现关系,而且类可以继承一个类的同时实现多个接口
5.接口与接口之间可以有继承关系
代码:
interface Inter
{
public static final int NUM = 3;
public abstract void show();//没有方法主体
}
interface InterA
{
public abstract void method();
}
class Dmo
{
public void function() {}
}
//类与类之间是继承关系
//类与接口之间是实现关系(有内容是实现,没内容叫做继承)
//接口与接口之间是继承关系(可存在多继承)
interface A{
void methodA();
//int show();//修饰符不同
}
interface B{
void methodB();
//boolean show();//修饰符不同
}
interface C extends A,B{
void methodC();
}
class D implements C{
public void methodA() {}
public void methodB() {}
public void methodC() {}
}
class Test extends Dmo implements Inter,InterA
{
public void show() {}
public void method() {}
}
class Demo
{
public static void main(String[] args) {
Test t = new Test();
System.out.println(t.NUM);
System.out.println(Test.NUM);
System.out.println(Inter.NUM);
}
}
接口举例体现:
abstract class Student//基本功能定义在类中,扩展功能定义在接口中
{
abstract void study();
void sleep() {
System.out.println("sleep");
}
}
interface Sing//功能扩展
{
void sing();
}
class Zhangsan extends Student implements Sing
{
void study() {}
public void sing() {}
}
class code
{
public static void main(String[] args)
{
System.out.println();
}
}