• Java从入门到实战之(15)面向对象之接口(三)


    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中接口不能被实例化的

  • 相关阅读:
    H5开发推荐使用Q.js,轻量的前端单页路由框架
    微信公众号分享接口
    ios浏览器 图片size过大(长度6000px) 设置translateZ(0)/translate3d(0,0,0),会模糊
    Android Studio创建项目
    unity 旋转两种方法
    Unity3D 物体移动方法总结
    unity3d 各键值对应代码
    MonoBehaviour简述
    unity之Rigidbody属性
    Unity UGUI实现分段式血条
  • 原文地址:https://www.cnblogs.com/huanghanyu/p/13807688.html
Copyright © 2020-2023  润新知