接口在我们的生活中比比皆是 比如电脑主机的接口,手机的接口等等
如何把接口写成编程语言类的内容呢
我们可以使用java来实现接口
一.语法规则
1.将关键字class换成interface 定义了一个接口
2.接口中都是抽象方法
代码如下:
interface IShape{//接口名称
//抽象方法
public abstract void draw();//public abstract 是默认的 可以不写
public void fun1();
abstract void fun2();
void fun3();//可以都写成这样 保持整齐简洁
}
二.接口的使用
1.使用implements 来使用接口
interface IShape{
void draw();
}
abstract class A implements IShape{
}
2.接口的使用方法
子类和父类是继承关系extends,类和接口是实现关系implements
当有接口和类的实现,子类和父类的继承关系一起出现时,代码如下
//接口(接口中的方法默认是抽象方法)
interface IShape{
void draw();
//可以不是抽象方法
default void func(){//不是抽象方法 可以不重写
System.out.println("输出了func");
}
}
//类与接口的实现
abstract class A implements IShape{ //IShape是抽象类 必须用抽象类(A)来实现
public abstract void fun2();
}
//子类与父类的继承
class B extends A{//B继承了一个抽象类 就要重写抽象类A和接口IShape的抽象方法
@Override
public void draw() {//重写抽象方法
}
@Override
public void fun2() {//重写抽象方法
}
}
接口咋才可以用在实际生活中 那多了去了,比如电脑,电脑就有很多的usb接口,什么HDIM接口,什么电源接口等等,这些都是可以用接口来描述或实现的。
再比如形状,有圆形,方形,三角形等等,这样也可以使用接口,我们可以定义一个接口,不实现具体的内容,然后使用类加上implements这个实现类,来具体实现我想要的内容,比如我想要一个圆形,我只需要在我的圆形类里重写接口中的抽象方法(抽象方法在继承和实现的时候必须重写),然后实现我的内容就可以了。
我写一个关于形状的接口,那么具体的实现代码如下
interface IShape{
void draw();
default void fun(){
System.out.println("悦悦");//打印内容随意,这里是我女朋友名字,
//只是为了在下面的类中完成这里的fun的重写 形成下对比
}
}
//圆形类
class Circle implements IShape{
@Override
public void draw() {
System.out.println("画个圆形⚪");
}
@Override
public void fun() {
System.out.println("悦悦是圆的");//这里就重写了fun()
}
}
class Rect1 implements IShape{
@Override
public void draw() {
System.out.println("画一个矩形");
}
}
public class Demo2 {
//创建引用类型
public static void drawMap(IShape iShape){
iShape.fun();
iShape.draw();
}
public static void main(String[] args) {
drawMap(new Circle());
drawMap(new Rect1());
}
}
结果如下
注意:
1.不能直接new接口的对象
2.接口中的方式都是public的抽象方法,default是例外的
3.接口中的方法是不嫩挂在接口中实现的,只能让实现接口的类来实现,default例外
4.重写接口方法时,不能使用default访问权限修饰,也就是不能使用更低的访问权限
5.接口中可以有变量,但都会成为public static final变量
6.接口中不能有静态代码块和构造方法
public interface USB {
// 编译失败
public USB(){
}
{} // 编译失败
void openDevice();
void closeDevice();
}
ps:还有多个接口的实现,下一篇文章会发.