HELLO!HELLO!
今天也是元气满满的一天呢
今天学习了JAVA里面的;接口
什么是接口呢?
他和昨天的abstract差不多
不过他是一个特殊的抽象类
两者都可以包含抽象方法且不能创建对象。
接口是一种标准,通常用来约束其子类(实现类)应具备的功能。
(小贴士;类名需要在前面加个大写的i和类名首字母双大写 例如; IDemo)
1,接口如何定义
使用interface关键字来定义接口
例;interface 接口名{}
interface IDemo{
}
2,接口的方法和属性都有什么特点呢?
接口中的属性都是公开静态常量,隐式使用public static final 修饰。
interface IDemo{
public static final int i = 10;
int b =10;//默认被public static final所修饰
}
接口中的方法都是公开抽象方法,隐式使用public abstract修饰。
interface IDemo{
public abstract void a();
void A();//默认给public abstract所修饰
}
3,那个他和昨天的抽象类有什么区别呢?
对比;
抽象类 | 接口 |
---|---|
abstract | interface |
无要求 | 公开静态常量 |
抽象方法/非抽象方法 | 抽象方法 |
有 | 无 |
单继承 | 接口之间多继承 |
1,定义关键字 2,属性3,方法4,构造方法5,继承模式
4,接口如何继承(多继承)
接口可以使用 extends 关键字 继承其他接口;多个接口使用逗号分隔
interface IA{}
interface IB{}
interface IC extends IA,IB{}
5,接口如何实现呢?
在class关键字之后,使用implements 关键字实现接口,多个接口则使用逗号分隔 implements 与extends类似 他也可以继承接口中的属性和方法,只不过implements 关键字只能应用于接口。
interface IA{}
interface IB{}
class Demo implements IA,IB{}
(小贴士;实现一个接口就要实现接口中所有的方法,否则子类(实现类)将“被迫”成为抽象类。)
interface IA{
void a();
}
interface IB{
void b();
}
class Demo implements IA,IB{
public void a(){}//实现接口里面的抽象方法
public void b(){}
}
6,如何使用接口呢?
interface IDemo{
void a();
void b();
}
class Test implements IDemo{
public voida a(){}//实现方法
public voida b(){}
}
//覆盖接口中的所有方法(因为接口中所有的方法都是抽象方法
最后,如何使用多态的语法创建对象呢?
声明实类 调用 接口即可
Demo dm =new Test();
dm.a();
dm.b();