Open nxmxx opened 4 years ago
接口
接口定义: 接口就是一些公共规范标准,比如生活中的插头;
接口的定义基本格式 /*interface定义基本格式
接口的抽象方法定义 .Interface抽象方法的定义
public interface MyInterFace {
public abstract void interFaceAbstract(参数列表);
}
接口的抽象方法使用 (1)Interface类 package cn.javase.video.study.InterFace;
/*interface定义基本格式
1.Interface类基本格式: *public interface MyInterFace { //.......
2.Interface抽象方法的定义
格式:
public abstract 返回值类型 抽象方法名称 (参数列表);
要求:
(1) public 和 abstract两个关键字是规定死的,但可以省略任意一个或全部省略。
(2) 抽象方法的三要素 返回值类型、参数列表、方法名 根据要求做
} *接口的抽象方法使用
public abstract void abs2();
public abstract void abs3();
public abstract void abs4(); } (2)Interface类的实现类 package cn.javase.video.study.InterFace;
public class MyInterfaceabsimpi implements MyInterFace{
@Override public void abs1() { System.out.println("1 Interface Abstrct"); } @Override public void abs2() { System.out.println("2 Interface Abstrct"); } @Override public void abs3() { System.out.println("3 Interface Abstrct"); } @Override public void abs4() { System.out.println("4 Interface Abstrct"); }
(3)Interface类的实现类的使用类 package cn.javase.video.study.InterFace;
public class InterFaceMain { public static void main(String[] args) { MyInterfaceabsimpi impi =new MyInterfaceabsimpi(); impi.abs1(); impi.abs2(); impi.abs3(); impi.abs4(); }
在接口已经定义好,实现类已经实现,并且正在使用中,现在需要升级Interface类,不能在Interface中直接加更新抽象方法,再去修改实现类及使用类,这时候就需要使用接口的默认方法来解决,在Interface类中添加接口默认方法(你要更新的功能),实现类不需要覆盖重写新添加的接口默认方法,直接在使用类中调用即可。 定义:解决Interface类升级问题的方法
接口的默认方法使用 1) Interface类 package cn.javase.video.study.InterFace; /*
} }
2) 实现类1 package cn.javase.video.study.InterFace;
public class InterfaceDefaultMethodShiXian implements InterfaceDefaultMethod { public void abstract1(){ System.out.println("Interface类抽象方法重写");
};
3) 实现类2 package cn.javase.video.study.InterFace;
public class InterfaceDefaultMethodShiXian2 implements InterfaceDefaultMethod{ public void abstract1(){ System.out.println("Interface类抽象方法重写");
实现类的实用类package cn.javase.video.study.InterFace;
public class InterfaceDefaultMethodMain { public static void main(String[] args) { InterfaceDefaultMethodShiXian shiXian = new InterfaceDefaultMethodShiXian(); shiXian.abstract1(); shiXian.abstract3(); System.out.println("-----------------------------"); InterfaceDefaultMethodShiXian2 shiXian2 =new InterfaceDefaultMethodShiXian2(); shiXian2.abstract1(); shiXian2.abstract3(); } }
接口的静态方法定义 1.默认方法的格式
接口的静态方法使用 接口静态方法的使用
1) Interface类 package cn.javase.video.study.InterFace; /*
*/ public interface InterfaceStaticMethod {
public static void abstract4(){ System.out.println("这是接口的静态方法"); }
2) 实现类 package cn.javase.video.study.InterFace;
public class InterfaceStaticMethodShiXian implements InterfaceStaticMethod { //Interface类中的静态方法不需在实现类中覆盖重写,
3) 实现类的使用类 4) package cn.javase.video.study.InterFace;
public class InterFaceStaticMain { public static void main(String[] args) { // Interface类中的静态方法不需在实现类中覆盖重写,使用时在实现类的使用类中 // 直接使用“Interface类名称.静态方法”即可。 InterfaceStaticMethod.abstract4(); }
接口的私有方法的定义 (1) 问题描述:当我们在Interface类中,多个静态方法或者默认方法存在代码重复的情况,所以我们将重复的代码写在一个方法中,让使用它的静态方法或默认方法去调用他。但是存在一个问题,这个公共方法不能被实现类去覆盖重写,所以要使用java9中的私有方法去定义这个公共方法。 (2) 格式: 1) 静态方法 Private static 返回值类型 私有方法名称 (参数列表){ 方法体 } 2) 普通私有方法方法 Private 返回值类型 私有方法名称 (参数列表){ 方法体 }
接口的私有方法的使用 (1) 静态私有方法 静态私有方法:
// 静态私有方法:
public static void abstract1() { System.out.println("静态方法1"); staticMethod1(); } public static void abstract2() { System.out.println("静态方法2"); staticMethod1(); } private static void staticMethod1() { System.out.println("AAAAA"); System.out.println("bbbb"); System.out.println("VVVVVV"); }
(2) 普通私有方法(默认私有方法) 普通私有方法:
// 普通私有方法 public default void abstract3() { System.out.println("静态方法1"); staticMethod(); }
public default void abstract4() { System.out.println("静态方法2"); staticMethod(); } private void staticMethod() { System.out.println("AAAAA"); System.out.println("bbbb"); System.out.println("VVVVVV"); }
接口的常量的定义和使用
package cn.javase.video.study.InterFace; /*
继承父类并实现多接口
接口之间的多继承
接口
接口定义: 接口就是一些公共规范标准,比如生活中的插头;
接口的定义基本格式 /*interface定义基本格式
接口的抽象方法定义 .Interface抽象方法的定义
public interface MyInterFace {
public abstract void interFaceAbstract(参数列表);
}
接口的抽象方法使用 (1)Interface类 package cn.javase.video.study.InterFace;
/*interface定义基本格式
1.Interface类基本格式: *public interface MyInterFace { //.......
}
2.Interface抽象方法的定义
格式:
public abstract 返回值类型 抽象方法名称 (参数列表);
要求:
(1) public 和 abstract两个关键字是规定死的,但可以省略任意一个或全部省略。
(2) 抽象方法的三要素 返回值类型、参数列表、方法名 根据要求做
public interface MyInterFace {
public abstract void interFaceAbstract(参数列表);
} *接口的抽象方法使用
public abstract void abs2();
public abstract void abs3();
public abstract void abs4(); } (2)Interface类的实现类 package cn.javase.video.study.InterFace;
public class MyInterfaceabsimpi implements MyInterFace{
}
(3)Interface类的实现类的使用类 package cn.javase.video.study.InterFace;
public class InterFaceMain { public static void main(String[] args) { MyInterfaceabsimpi impi =new MyInterfaceabsimpi(); impi.abs1(); impi.abs2(); impi.abs3(); impi.abs4(); }
}
在接口已经定义好,实现类已经实现,并且正在使用中,现在需要升级Interface类,不能在Interface中直接加更新抽象方法,再去修改实现类及使用类,这时候就需要使用接口的默认方法来解决,在Interface类中添加接口默认方法(你要更新的功能),实现类不需要覆盖重写新添加的接口默认方法,直接在使用类中调用即可。 定义:解决Interface类升级问题的方法
接口的默认方法使用 1) Interface类 package cn.javase.video.study.InterFace; /*
} }
2) 实现类1 package cn.javase.video.study.InterFace;
public class InterfaceDefaultMethodShiXian implements InterfaceDefaultMethod { public void abstract1(){ System.out.println("Interface类抽象方法重写");
}
3) 实现类2 package cn.javase.video.study.InterFace;
public class InterfaceDefaultMethodShiXian2 implements InterfaceDefaultMethod{ public void abstract1(){ System.out.println("Interface类抽象方法重写");
}
实现类的实用类package cn.javase.video.study.InterFace;
public class InterfaceDefaultMethodMain { public static void main(String[] args) { InterfaceDefaultMethodShiXian shiXian = new InterfaceDefaultMethodShiXian(); shiXian.abstract1(); shiXian.abstract3(); System.out.println("-----------------------------"); InterfaceDefaultMethodShiXian2 shiXian2 =new InterfaceDefaultMethodShiXian2(); shiXian2.abstract1(); shiXian2.abstract3(); } }
接口的静态方法定义 1.默认方法的格式
接口的静态方法使用 接口静态方法的使用
1) Interface类 package cn.javase.video.study.InterFace; /*
*/ public interface InterfaceStaticMethod {
public static void abstract4(){ System.out.println("这是接口的静态方法"); }
}
2) 实现类 package cn.javase.video.study.InterFace;
public class InterfaceStaticMethodShiXian implements InterfaceStaticMethod { //Interface类中的静态方法不需在实现类中覆盖重写,
}
3) 实现类的使用类 4) package cn.javase.video.study.InterFace;
public class InterFaceStaticMain { public static void main(String[] args) { // Interface类中的静态方法不需在实现类中覆盖重写,使用时在实现类的使用类中 // 直接使用“Interface类名称.静态方法”即可。 InterfaceStaticMethod.abstract4(); }
}
接口的私有方法的定义 (1) 问题描述:当我们在Interface类中,多个静态方法或者默认方法存在代码重复的情况,所以我们将重复的代码写在一个方法中,让使用它的静态方法或默认方法去调用他。但是存在一个问题,这个公共方法不能被实现类去覆盖重写,所以要使用java9中的私有方法去定义这个公共方法。 (2) 格式: 1) 静态方法 Private static 返回值类型 私有方法名称 (参数列表){ 方法体 } 2) 普通私有方法方法 Private 返回值类型 私有方法名称 (参数列表){ 方法体 }
接口的私有方法的使用 (1) 静态私有方法 静态私有方法:
// 静态私有方法:
(2) 普通私有方法(默认私有方法) 普通私有方法:
// 普通私有方法 public default void abstract3() { System.out.println("静态方法1"); staticMethod(); }
接口的常量的定义和使用
package cn.javase.video.study.InterFace; /*
继承父类并实现多接口
接口之间的多继承