• Java: 接口


    接口:

      在Java语言规范中,一个方法的特征仅包括方法的名字,参数的数目和种类,而不包括方法的返回类型,参数的名字以及所抛出来的异常。在Java编译器检查方法的重载时,会根据这些条件判断两个方法是否是重载方法。但在Java编译器检查方法的置换时,则会进一步检查两个方法(分处超类型和子类型)的返还类型和抛出的异常是否相同。
    接口实现和类继承的规则不同,为了数据的安全,继承时一个类只有一个直接父类,也就是单继承,但是一个类可以实现多个接口,接口弥补了类的不能多继承缺点,继承和接口的双重设计既保持了类的数据安全也变相实现了多继承。
      Java接口本身没有任何实现,因为Java接口不涉及表象,而只描述public行为,所以Java接口比Java抽象类更抽象化。但是接口不是类,不能使用new 运算符实例化一个接口。如 x=new comparable(......);//这个是错误来的。但是可以声明接口变量Comparable x; //这是允许的。
      Java接口的方法只能是抽象的和公开的,Java接口不能有构造器,Java接口可以有public、静态的和final属性。即接口中的属性可以定义为 public static final int value=5;
    接口把方法的特征和方法的实现分割开来。这种分割体现在接口常常代表一个角色,它包装与该角色相关的操作和属性,而实现这个接口的类便是扮演这个角色的演员。一个角色由不同的演员来演,而不同的演员之间除了扮演一个共同的角色之外,并不要求其它的共同之处。(引用自百度百科
     
    初期理解:可以理解是一个特殊的抽象类
      当抽象类中的方法都是抽象的,该类可以通过接口的形式来表示。
      关键字:interface,用于定义接口

    接口定义的格式特点:
      1,接口常见定义:常量,抽象方法
      2,接口的成员都有固定的修饰符,如果接口中没有写这些修饰符,系统会自动加上
        常量:public static final
        方法:public abstract
      记住:街口中的成员都是public的

    因为有抽象方法,接口是不可以创建对象的,需要被子类实现,子类对接口的抽象方法全都覆盖后子类才可以实例化,否则子类也是一个抽象类。

    接口可以被类多实现——一个类可以同时实现多个接口,也是对多继承不支持的转换形式。

    一个类可以只可以继承一个类,但可以实现多个接口,这样可以扩展类的功能;

    但接口和接口之间可以多继承。

    接口的特点:

      1.接口是对外暴露的规则

      2.接口是程序的功能扩展

      3.接口可以用来多实现

      4.类与接口之间是实现关系,而且类可以继承一个类的同时实现多个接口

      5.接口与接口之间可以有继承关系,且可以多继承

     1 interface Inter
     2 {
     3     public static final double PAI = 3.14;
     4     public abstract void show();
     5 }
     6 
     7 interface Inter2
     8 {
     9     
    10     public abstract void method();
    11 }
    12 
    13 class InterInstance implements Inter,Inter2
    14 {
    15     public void show()
    16     {
    17 
    18     }
    19     public void method()
    20     {
    21 
    22     }
    23 }
    24 
    25 class InterfaceDemo
    26 {
    27     public static void main(String[] args)
    28     {
    29         InterInstance ii = new InterInstance();
    30         System.out.println(ii.PAI);
    31         System.out.println(Inter.PAI);
    32         System.out.println(InterInstance.PAI);
    33     }
    34 }
  • 相关阅读:
    日期时间類(DateTime)的应用
    C# 排版快捷鑑
    撷取指定网址中的资料Part1:WebClinet 的用法
    Chart in Web
    Android APK反编译得到Java源代码和资源文件
    iOS 6.0 GM 版全系列固件下载
    IOS判断设备是否已越狱(isJailbroken)
    批量离线下载迅雷快传资源
    Android如何防止apk程序被反编译
    Java接口学习
  • 原文地址:https://www.cnblogs.com/siyingcheng/p/4302205.html
Copyright © 2020-2023  润新知