java中接口学习总结

1、什么是接口?
接口是一种对事物的公用特征进行的抽象,抽象出来的特征放在接口中进行描述,类似类,和类的区别是比类更特别,接口中的内容也有限制,不像类中可以有属性,方法,代码块等等。接口中的成员只能是全局变量、抽象方法、静态方法、默认方法。

接口比抽象类还特殊,抽象类其实也是一种特殊类。
抽象类不能被实例化,接口也是一样,不能够被实例化,其实从它的定义中就可以得知,接口中只能有抽象方法。

接口和类的最大的不同是一个类可以实现多个接口,而一个类不能继承多个类。

//A继承了父类B并实现了接口CC,DD,EE
class A extends B implements CC,DD,EE

接口与接口之间可以实现多继承。

interface AA{

}

interface BB{

}

interface CC extends AA, BB{

}

接口关键字:interface
类和子类之间是is a的关系,比如男人是人。
接口和类是并列的结构。即都是一种抽象。
接口的语法:使用关键字interface 修饰的。
接口中的成员:
可以定义全局变量和抽象方法(jdk1.7中)
jdk8中除了7中还可以定义静态方法、默认方法。

class InterfaceTest{

}
interface Flyable{
	public static final int MAX_SPEED = 7900;
	int MIN_SPEED = 1;//可以省略,默认也是和第一行一样的。在接口外面是也可以直接通过接口调用。
	public abstract void fly();
	void stop();//这里也可以省略
	//接口中不能够定义构造器,那么也就是接口不能够实例化。
}

2、接口的作用
在定义类的时候根据需求进行实现一个接口或者多个接口,这样类就拥有了接口的特征。在实例化对象的时候,就可以用对象进行调用接口的特征。

3、接口的使用场景
一般都是通过类来实现接口,不会对接口进行实例化。
//如果类实现了接口中所有方法,那么就可以实例化对象。
如果类中没有全部实现了接口中的所有方法,那么类还是抽象类。

package com.netease;
public class Main {

    public static void main(String[] args) {
	// write your code here
        Plane p = new Plane();
        p.fly();
        p.stop();
    }
}
interface Flyable{
    public static final int MAX_SPEED = 7900;
    int MIN_SPEED = 1;//可以省略,默认也是和第一行一样的。在接口外面是也可以直接通过接口调用。
    public abstract void fly();
    void stop();//这里也可以省略
    //接口中不能够定义构造器,那么也就是接口不能够实例化。
}

class Plane implements Flyable{
    public void fly(){
        System.out.println("飞机可以飞");
    }
    public void stop(){
        System.out.println("飞机可以停");

    }
}

打印结果:

飞机可以飞
飞机可以停

java类可以实现多个接口------》因为java的语法不支持多继承,也就是一个类只有有一个父类,那么为了解决多继承的问题,出现了接口,但是不是真正的继承,只是实现接口。

public class Main {

    public static void main(String[] args) {
	// write your code here
        Plane p = new Plane();
        p.fly();
        p.stop();
        p.att();
    }
}
interface Flyable{
    public static final int MAX_SPEED = 7900;
    int MIN_SPEED = 1;//可以省略,默认也是和第一行一样的。在接口外面是也可以直接通过接口调用。
    public abstract void fly();
    void stop();//这里也可以省略
    //接口中不能够定义构造器,那么也就是接口不能够实例化。
}

interface attrack{

    public static final String AK = "serious";

    public abstract void att();
}
class Plane implements Flyable,attrack{
    @Override
    public void fly(){
        System.out.println("飞机可以飞");
    }
    @Override
    public void stop(){
        System.out.println("飞机可以停");

    }
    @Override
    public void att(){
        System.out.println("飞机可以袭击");
    }
}

输出结果:

飞机可以飞
飞机可以停
飞机可以袭击
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

如梦@_@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值