目录
接口:不可以创建对象
public interface base{
jdk8以前
//成分1:常量,public static final 通常省略
public static final String a="Azai"; String b="azai";
//成分2:抽象方法,public abstract可以省略
public abstract void Azai(); void helloworld(); abstract void b();
jdk8新增方法:
* 1.默认方法:允许接口中直接定义带有方法体的方法,public default void (){}
* 2.静态方法:
* 接口的静态方法必须用本身的接口名来调用
* 一个类实现多个接口,多个接口中含有同名的静态方法不冲突
default void ohh(){ System.out.println("默认方法用实现类直接调用"); go(); } static void hhh(){ System.out.println("静态方法用接口名调用"); }
jdk 9:私有方法
* 私有的实例方法必须使用private修饰
* 只能在本类中被其他默认方法或者私有方法访问
private void go(){ System.out.println("私有方法被接口内部的其他方法调用"); }
}
接口的使用:被实现
* 接口:特殊的父类
* 实现类:继承接口的所有方法,并提供自己这个类的使用方法
* 若一个类继承了父类实现了方法,优先使用父类中的同名方法
* public class Ues implements 接口1,接口2,接口3.....{}
public class Use implements base{ private String a; public Use(String a){ this.a=a; } @Override public void Azai() { // TODO Auto-generated method stub System.out.println("I'm Azai"); } @Override public void helloworld() { // TODO Auto-generated method stub System.out.println("HELLOWORLD!"); } @Override public void b() { // TODO Auto-generated method stub System.out.println("*"+a); } }
主类
public class Main { public static void main(String[] args) { Use c=new Use("123"); c.Azai();//I'm Azai c.helloworld();//HELLOWORLD! c.b();//*123 c.ohh();//默认方法实现类直接调用 base.hhh();//静态方法用接口名调用 } }
接口多继承:接口 extends 其他接口...
* 规范合并,整合多个接口为一个接口,便于子类实现
* 类与类的继承:单继承
public interface Interface_extends extends base{ void a(); }
学习视频:黑马程序员