• Java面向对象-接口


    Java面向对象-接口

    接口定义:一种特殊的“抽象类”,没有普通方法,由全局常量和公共的抽象方法所组成;

    1,接口的定义

    接口定义用关键字 interface

    我们给下实例代码:

     1 package com.java1234.chap03.sec12;
     2  
     3 /**
     4  * 定义一个接口A
     5  * @author user
     6  *
     7  */
     8 public interface A {
     9  
    10     /**
    11      * 全局常量
    12      */
    13     public static final String TITLE="hello";
    14      
    15     /**
    16      * 定义一个抽象方法 abstract可以省略  
    17      */
    18     public abstract void a();
    19 }

    注意点:由于接口里的方法都是抽象的,所以abstract可以省略,实际开发一般都是省略的,开发者的习惯;

    2,实现接口 可以实现一个或者多个接口

    实现接口我们用implements关键字,我们来搞一个测试方法:

     1 package com.java1234.chap03.sec12;
     2  
     3 public class Test implements A{
     4  
     5     @Override
     6     public void a() {
     7         System.out.println("a方法");
     8     }
     9  
    10     public static void main(String[] args) {
    11         Test t=new Test();
    12         t.a();
    13         System.out.println(Test.TITLE);
    14     }
    15 }

    实现接口 ,类里要实现接口里的抽象方法;

    运行输出:

     a方法

     hello

    为了演示实现多个接口,我们这里再定义一个接口:

     1 package com.java1234.chap03.sec12;
     2  
     3 /**
     4  * 定义一个接口B
     5  * @author user
     6  *
     7  */
     8 public interface B {
     9  
    10     /**
    11      * 全局常量
    12      */
    13     public static final String TITLE2="java知识分享网";
    14      
    15     /**
    16      * 定义一个抽象方法 abstract可以省略  
    17      */
    18     public abstract void b();
    19 }

    我们修改下Test类:

     1 package com.java1234.chap03.sec12;
     2  
     3 public class Test implements A,B{
     4  
     5     @Override
     6     public void a() {
     7         System.out.println("a方法");
     8     }
     9      
    10     @Override
    11     public void b() {
    12         System.out.println("b方法");
    13     }
    14  
    15     public static void main(String[] args) {
    16         Test t=new Test();
    17         t.a();
    18         t.b();
    19         System.out.println(Test.TITLE);
    20         System.out.println(Test.TITLE2);
    21     }
    22  
    23      
    24 }

    实现多个接口,中间用逗号隔开,并且实现所有抽象方法

    运行输出:

    a方法

    b方法

    hello

    java知识分享网

    3,继承类和实现接口 先继承,后实现接口

    我们先定义一个类C:

    1 package com.java1234.chap03.sec12;
    2  
    3 public class C {
    4  
    5     public void c(){
    6         System.out.println("c方法");
    7     }
    8 }

    我们再修改下测试类Test 继承C类,实现A,B接口,这里有个注意点,java规范,必须先继承后实现接口;

    我们上下代码:

     1 package com.java1234.chap03.sec12;
     2  
     3 public class Test extends C implements A,B{
     4  
     5     @Override
     6     public void a() {
     7         System.out.println("a方法");
     8     }
     9      
    10     @Override
    11     public void b() {
    12         System.out.println("b方法");
    13     }
    14  
    15     public static void main(String[] args) {
    16         Test t=new Test();
    17         t.a();
    18         t.b();
    19         t.c();
    20         System.out.println(Test.TITLE);
    21         System.out.println(Test.TITLE2);
    22     }
    23  
    24      
    25 }

    运行输出:

    a方法

    b方法

    c方法

    hello

    java知识分享网

    4,接口的继承  接口可以多继承

    我们定义一个D接口 继承A,B接口

    1 package com.java1234.chap03.sec12;
    2  
    3 public interface D extends A,B{
    4  
    5     public void d();
    6 }

    这里再加一个d方法;

    我们重新搞一个测试方法 继承C类,实现D接口:

     1 package com.java1234.chap03.sec12;
     2  
     3 public class Test2 extends C implements D{
     4  
     5     @Override
     6     public void a() {
     7         System.out.println("a方法");
     8     }
     9  
    10     @Override
    11     public void b() {
    12         System.out.println("b方法");
    13     }
    14  
    15     @Override
    16     public void d() {
    17         System.out.println("d方法");
    18     }
    19  
    20     public static void main(String[] args) {
    21         Test2 t=new Test2();
    22         t.a();
    23         t.b();
    24         t.c();
    25         t.d();
    26         System.out.println(Test2.TITLE);
    27         System.out.println(Test2.TITLE2);
    28     }
    29 }

    运行输出:

    a方法

    b方法

    c方法

    d方法

    hello

    java知识分享网

    注:

    Java中接口不能被实例化的

  • 相关阅读:
    使用MRS CDL实现实时数据同步的极致性能
    调用华为云GES服务业务面API相关参数的获取
    华为云数据库战略启示录
    华为云TICS解决联邦计算过程中的流程感知问题
    华为云DLI Flink作业生产环境推荐配置指导
    深入跨国互联网业务场景谈华为云数智融合元数据的“五个统一”
    教你如何将华为云CDN日志转存到OBS
    华为云CDN如何加速ECS资源?
    Jmeter压测工具使用之HetuEngine压力测试
    扒一扒GES如何赋能互联网电商风控
  • 原文地址:https://www.cnblogs.com/eaglezb/p/5961535.html
Copyright © 2020-2023  润新知