zoukankan      html  css  js  c++  java
  • Java中的接口

    在上一篇Java中的抽象类中提到抽象类,现在讲一个和它很像的东西“接口”,为什么说它和抽象类很像呢?因为接口也是抽象的,它一样不实现具体的代码,下面就是一段关于接口的代码

    interface Base{
        void hello();
    }
    
    class A implements Base{
        public void hello(){
            System.out.println("hello A");
        }
    }
    
    public class app {
        public static void main(String[] args){
            A a = new A();
            a.hello();
        }
    }
    
    // hello A
    
    

    Java通过interface来定义接口,通过implements来实现具体代码。这真的非常像抽象类abstract,那么它和抽象类有什么区别呢?接口里面的方法必须是抽象方法,而抽象类里面的方法则根据你自己来定义。另外一个比较大的区别就是,一个接口可以继承至多个接口,而抽象类则不能,继承至多个接口通过逗号隔开。以下是一个继承至多个接口的例子。

    interface Base{
        void hello();
    }
    interface Base2{
        void hello2();
    }
    
    interface Base3 extends Base,Base2{
        void hello3();
    }
    
    class A implements Base3{
        public void hello(){
            System.out.println("Hello 1");
        }
        public void hello2(){
            System.out.println("Hello 2");
        }
        public void hello3(){
            System.out.println("Hello 3");
        }
    }
    
    public class app {
        public static void main(String[] args){
            A a = new A();
            a.hello();
            a.hello2();
            a.hello3();
        }
    }
    

    也就是类体里全部都是抽象方法时,我们就可以把这个类定义为接口。

    不过也需要注意一下,再接口中定义的变量或方法默认都是公开的public,所以在实现具体方法时,必须显示的设置,另外一点就是接口中的变量都会成为常量。

    那么接口有什么用呢?个人感觉就是用来归类的,还有一点就是,一种规范,其他人能够知道这个接口中都有哪些方法,而不必去关心里面具体是怎么实现的,我们只要调用这个接口就可以了,在自己写库时比较实用。

  • 相关阅读:
    手把手教会你如何通过C#创建Windows Service
    推荐几款软件界面模型设计工具
    visual studio 2010小技巧
    C# 枚举在属性中运用
    C# Stream 和 byte[] 之间的转换
    推荐一款DataGridView的打印解决方案
    VB提高专辑VB编写自定义类(下)
    vb 怎么把长整型转字符串
    Android NAND: nand_dev_load_disk_state, restore failed: size required (3546398242485400641) exceeds device limit (6920
    VB中各种类型的转换
  • 原文地址:https://www.cnblogs.com/pssp/p/6297760.html
Copyright © 2011-2022 走看看