点我
接口
概述
接口就是给出一些没有实现的方法,封装到一起,到某个类要使用的时候,在根据具体的情况将方法写出
语法
- interface 接口名{ 属性; 抽象方法;}
接口的实现
- class 类名 implements 接口{自己的属性;自己的方法;必须实现的接口抽象方法}
接口的优势
- 弥补了单类继承的不足,一个类可以同时实现多个接口
- 让程序可以面向接口编程,灵活方便的切换各种业务实现
demo
package com.xbxaq.interface_;
public class Test {
public static void main(String[] args) {
Singer s1 = new A();
s1.sing();
}
}
class A extends Student implements Driver,Singer{
@Override
public void driver() {
System.out.println("成为一名司机");
}
@Override
public void sing() {
System.out.println("成为一名歌手");
}
}
class Student{
public Student(){
System.out.println("我现在是个学生");
}
}
interface Driver{
void driver();
}
interface Singer{
void sing();
}
接口注意事项
- 一个接口继承多个接口,如果多个接口中存在方法签名冲突,则此时不支持多继承
- 一个类实现多个接口时,如果多个接口中存在方法签名冲突,则此时不支持多实现
- 一个类继承了父类,又同时实现了接口,父类中和接口中有同名的默认方法时,实现类会优先选择父类的
- 一个类实现了多个接口,多个接口中存在同名的默认方法,可以不冲突,这个类重写该方法即可
- 接口不能被实例化
- 接口中的所有方法是public方法,接口中的抽象方法是不可以用abstract修饰的
- 一个普通类实现接口,必须将接口的所有方法都实现
- 抽象类实现接口,可以不用实现接口方法
- 一个类可以同时实现多个接口
- 接口中的属性只能是final,并且是public、static、final修饰符
- 接口中的属性访问形式为接口.属性名
- 接口不能继承其他的类,但是可以继承多个别的接口
- 接口的修饰符 只能是public和默认
jdk8新增接口方法
1、默认方法,必须使用default关键词修饰,默认会被public修饰,可以增加方法体,例如:default void test(){}
2、私有方法,必须使用private修饰(jdk9开始才支持),例如:private void test(){}
3、静态方法,必须使用static修饰,默认使用public修饰,例如:public static void test(){}
分类:
JAVA
版权申明
本文系作者 @小白学安全 原创发布在 xbxaq.com 站点,未经许可,禁止转载!
评论