接口速通(java)

接口基本语法要点

1. 接口中的方法默认为 public 的 抽象方法

interface Test {
	//void func1 默认是 public abstract void func1
	//public abstract 写上也可以,不过我建议省略
	void func1();
}

2. 接口中的属性只能是 public final static,并且默认也是public final static

interface Test {
	//int a 默认是 public static final a
	//public static final 写上也可以
	int a = 0;
}

3. 接口与接口间可以多继承

interface U1 {
	void func1();
}

interface U2 {
	void func3();
}

interface U3 extends U1, U2 {
	void func3();
}

这个U3就相当于
interface U3 {
	void func1();
	void func3();
	void func3();
}

4. 一个类可以实现多个接口

interface U1 {
	void func1();
}

interface U2 {
	void func2();
}

class Test implements U1,U2 {
	@Override
	void func1()
	{
		System.out.println("重写func1")
	}
	@Override
	void func2()
	{
		System.out.println("重写func2")
	}
}

5.接口可以实现多态

public class Main {
    public static void main(String[] args) {
        Test1 test1 = new Test1();
        Test2 test2 = new Test2();

        Use u = new Use();
        u.work(test1);
        u.work(test2);

    }
}
public class Test1 implements U1{
    @Override
    public void func() {
        System.out.println("调用 Test1 的 func1");
    }
}

public class Test2 implements U1{
    @Override
    public void func() {
        System.out.println("调用 Test2 的 func1");
    }
}
public interface U1 {
    void func();

}
public class Use {
    public void work(U1 use) {
        use.func();
    }
}

创建一个U1接口,再创建两个Test类,分别实现U1接口,再创建一个Use类用于实现多态,然后在主函数创建好 Test1 和 Test2 对象,还有 Use 的对象。然后调用 Use 中的 work 方法,把 t1 传进去 相当于 U1 use = test1use.func()。可以看到这里 编译类型U1 然后 运行类型test1, 触发 动态绑定机制 执行test1func();然后在把 test2 传进去 相当于 U1 use = test2use.func()。和上面一样的步骤触发动态绑定机制,找的是 test2func()



个人觉得接口要注意的点

1. 普通类实现了接口,必须重写接口中所有的抽象方法,因为这是抽象方法的特点
2. 接口不能不能实例化
3. 接口的修饰符只能是 public(public interface …) 或者 默认(interface…)



接口版本之间的不同

  • jdk 1.7之前:接口中所有方法都必须是抽象方法 ( 抽象方法没有方法体 )
  • jdk 1.8后:接口中可以有静态方法,普通方法,不过普通方法要用default修饰
  • jdk 1.9后::接口中可以有 private 方法


一只大一牛马,水平有限,博客主要用来复习,以上知识有错的话,欢迎评论区鞭打我

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值