TensorFlow or PyTorch
一、概念
1、接口是多个类的语法规范
2、语法
public interface 接口名{}
3、注意
a、一个接口可以被多个实现类 实现
b、接口不能被实例化
二、实现类
1、作用:实现接口
2、语法
public class 实现类名 implements 接口名 {}
3、注意
实现类可以继承多个接口
三、组成
1、常量
A、语法
public interface MyInterfaceVar { public static final int MAX_AGE = 100; }
B、注意事项:
a、常量名称大写且用下划线法则
b、常量必须赋值
c、常量既可以通过实现类调用,也可以通过接口调用
d、public static final 可以省略不写
2、抽象类
A、语法
public interface MyInterfaceA { public abstract void method(); }
B、注意事项
a、抽象方法在实现类中必须 overrider,若不overrider 这个实现类,就必须要是抽象类
b、实现类继承多个接口,且接口中有相同的抽象方法时,实现类只要重写一个即可
c、public abstract 可以省略不写
d、实现类的对象可以调用抽象方法
例子
1 package cn.wt.test.Demon01; 2 3 public interface MyInterfaceA { 4 public abstract void methodA(); 5 public abstract void method(); 6 }
MyInterfaceA.java
1 package cn.wt.test.Demon01; 2 3 public interface MyInterfaceB { 4 public abstract void method(); 5 public abstract void methodB(); 6 }
MyInterfaceB
1 package cn.wt.test.Demon01; 2 3 public class MyInterImp implements MyInterfaceA, MyInterfaceB{ 4 5 @Override 6 public void methodA() { 7 System.out.println("接口A的抽象方法"); 8 } 9 10 @Override 11 public void method() { 12 System.out.println("接口的抽象方法"); 13 } 14 15 @Override 16 public void methodB() { 17 System.out.println("接口B的抽象方法"); 18 } 19 }
MyInterImp.java
1 package cn.wt.test.Demon01; 2 3 public class Demon { 4 public static void main(String[] args) { 5 MyInterImp imp = new MyInterImp(); 6 imp.methodA(); 7 imp.method(); 8 imp.methodB(); 9 } 10 }
Demon
3、默认方法
java面试题-spring篇
A、作用
a、接口 添加新的方法时,不需要像抽象类这样,在每一个实现类 中都要 overrider
b、默认方法可以在实现类中重写
B、语法
public interface MyInterfaceC { public default void method(){ System.out.println("接口C中的默认方法"); } }
C、注意事项
1、public 可以省略不写
2、实现类的对象可以调用 默认方法
3、当拥有多个接口,且默认方法的名称相同时,实现类 必须要重写 默认方法
例子
1 package cn.wt.test.Demon01; 2 3 public interface MyInterfaceC { 4 5 public default void methodC(){ 6 System.out.println("接口C中的C方法"); 7 } 8 9 public default void method(){ 10 System.out.println("接口C中的默认方法"); 11 } 12 }
MyInterfaceC
1 package cn.wt.test.Demon01; 2 3 public interface MyInterfaceD { 4 public default void methodD(){ 5 System.out.println("接口D中的D方法"); 6 } 7 8 public default void method(){ 9 System.out.println("接口D中的默认方法"); 10 } 11 }
MyInterfaceD
1 package cn.wt.test.Demon01; 2 3 public class MyInterImp2 implements MyInterfaceC, MyInterfaceD { 4 5 @Override 6 public void method() { 7 System.out.println("默认方法汇总"); 8 } 9 }
MyInterImp2
1 package cn.wt.test.Demon01; 2 3 public class Demon02 { 4 public static void main(String[] args) { 5 MyInterImp2 imp2 = new MyInterImp2(); 6 imp2.method(); 7 imp2.methodD(); 8 imp2.methodC(); 9 } 10 }
Demon02
4、静态方法
概念:与类中的静态方法相似
A、语法
public interface MyInterfaceA { public static void method(){ System.out.println("接口A中的静态方法"); } }
B、注意事项
可以直接使用接口调用静态类
例子
public interface MyInterfaceA { public static void method(){ System.out.println("接口A中的静态方法"); } }
MyInterfaceA.java
1 package cn.wt.test.Demon01.demon02; 2 3 public class Demon { 4 public static void main(String[] args) { 5 MyInterfaceA.method(); 6 } 7 }
Demon
5、私有方法
A、作用
默认方法和静态方法中有重复的代码块,进行再一步封装
B、语法
C、注意
这个是版本1.9 以上才有的功能(明天写)
四、其它注意事项
1、接口中不能有static块和 构造方法
2、类是单继承,接口可以多继承即:一个接口可以 implement 多个接口
3、一个类即继承又实现接口,当父类和接口中的方法发送冲突时(方法名相同),以父类的方法为优先
4、一个类实现多个接口,且接口中有重名的抽象方法,重写一次即可
5、一个类继承多个接口,且接口中有重名的默认方法,默认方法必须在实现类中overrider
6、接口中的静态方法,可可以使用接口直接调用,所有不使用实现类也没关系
Numpy科学计算从放弃到入门