zoukankan      html  css  js  c++  java
  • Java接口定义(interface)及使用(implements)

    1. 在类的声明中,通过关键字extends来创建一个类的子类。一个类通过关键字implements声明自己使用一个或者多个接口。
    extends 是继承某个类, 继承之后可以使用父类的方法, 也可以重写父类的方法; implements 是实现多个接口, 接口的方法一般为空的, 必须重写才能使用
    2.extends是继承父类,只要那个类不是声明为final或者那个类定义为abstract的就能继承,JAVA中不支持多重继承,但是可以用接口 来实现,这样就要用到implements,继承只能继承一个类,但implements可以实现多个接口,用逗号分开就行了

    相对抽象类来讲,接口就是比抽象类还要抽象的抽象类,丝毫不带半点实现的内容。
    接口可以更加规范的对子类进行约束。
    接口全面地专业地实现了:规范和具体实现的分离。
    接口就是规范,定义的是一组规则,提现了现实世界中“如果你是...则必须...”的思想。如果你是动物,则必须能动。

    接口的本质是契约,就像法律一样。制定好后大家都遵守。
    项目的具体需求是多变的,我们必须以不变应万变才能从容开发,此处的“不变”就是“规范”。
    因此,我们开发项目往往都是面向接口编程!

    例子:

    [java] view plain copy
     
    1. package com.ws.basic;  
    2.   
    3. interface gobj{      
    4.     public abstract void  attack();   
    5. }  
    6.   
    7. class tower implements gobj{  
    8.   
    9.     @Override  
    10.     public void attack() {        
    11.         System.out.println("箭塔攻击范围内所有目标,重甲单位有伤害加成!");  
    12.     }     
    13. }  
    14.   
    15. public class test {  
    16.     public static void main(String[] args) {  
    17.       
    18.         tower t = new tower();  
    19.         t.attack();  
    20.     }  
    21. }  

    接口的定义:

    接口中只有常量和抽象方法:
    常量是 public static final
    方法是 public abstract
    如果没有写,就是默认的。

    implements:

    implements是一个类实现一个接口用的关键字,它是用来实现接口中定义的抽象方法。
    java中没有多继承,为了弥补这里的不足,用到了 interface 。
    java 中的接口定义基本上就是像C++中的类中定义的类中包含实虚函数也就是C++中的抽象类。

    接口不能创建实例,但是可用于声明引用变量类型。
    一个类实现了接口,必须实现接口中所有的方法。
    接口支持多继承,例如:class A extends B implements C,D,E

    接口和类的区别:

    接口不能用于实例化对象。
    接口没有构造方法。
    接口中所有的方法必须是抽象方法。
    接口不能包含成员变量,除了 static 和 final 变量。
    接口不是被类继承了,而是要被类实现。
    接口支持多重继承。

    接口和抽象类的区别:

    抽象类中的方法可以有方法体,就是能实现方法的具体功能,但是接口中的方法不行。
    抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是 public static final 类型的。
    接口中不能含有静态代码块以及静态方法(用 static 修饰的方法),而抽象类是可以有静态代码块和静态方法。
    一个类只能继承一个抽象类,而一个类却可以实现多个接口。

    接口的主要应用:

    多态接口动态加载;
    接口作为方法的参数传递;
    产生常量群。

  • 相关阅读:
    Django of python 中文文档 及debug tool
    爬虫、网页测试 及 java servlet 测试框架等介绍
    python的分布式爬虫框架
    github 上 python 的优秀库推荐列表
    github 上 机器学习 的库推荐列表
    爬虫,如何防止被ban之策略大集合
    make menuconfig 时出现 mixed implicit and normal rules: deprecated syntax
    adb通过TCP/IP连接提示 unable to connect to *, Connection refused的解决方法
    Android中使用MediaCodec硬件解码,高效率得到YUV格式帧,快速保存JPEG图片(不使用OpenGL)(附Demo)
    ThinkCMF X2.2.2多处SQL注入漏洞分析
  • 原文地址:https://www.cnblogs.com/shikamaru/p/8361531.html
Copyright © 2011-2022 走看看