java 接口

站长

发表文章数:4263

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、实现类的对象可以调用抽象方法

例子

java 接口
java 接口

1 package cn.wt.test.Demon01;
2 
3 public interface MyInterfaceA {
4     public abstract void methodA();
5     public abstract void method();
6 }

MyInterfaceA.java
java 接口
java 接口

1 package cn.wt.test.Demon01;
2 
3 public interface MyInterfaceB {
4     public abstract void method();
5     public abstract void methodB();
6 }

MyInterfaceB
java 接口
java 接口

 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
java 接口
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、当拥有多个接口,且默认方法的名称相同时,实现类 必须要重写 默认方法

例子

java 接口
java 接口

 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
java 接口
java 接口

 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
java 接口
java 接口

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
java 接口
java 接口

 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、注意事项

可以直接使用接口调用静态类

例子

java 接口
java 接口

public interface MyInterfaceA {
    public static void method(){
        System.out.println("接口A中的静态方法");
    }
}

MyInterfaceA.java
java 接口
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科学计算从放弃到入门

未经允许不得转载作者:站长, 转载或复制请以 超链接形式 并注明出处 xss云之家-资源网,新人技术交流平台,一个湖北娃的个人博客
原文地址:《java 接口》 发布于2020-01-21

分享到:
赞(0) 打赏 生成海报

长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

投稿赚钱
2020年在家赚取零花钱
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册