zoukankan      html  css  js  c++  java
  • Java接口和抽象类以及接口的意义,instanceof的利用

    接口interface:

    1. 在接口中没有变量,成员无论如何定义,都是公共常量,public static final即使不显式声明也如此。

    2. 所有接口方法均隐含public abstract即使不显式声明也如此。(因而也不能使用protected和private修饰,不加修饰也不是默认权限)

    3. 接口可以继承其他接口但是不能继承类,不能设计父接口中的方法,不能实现别的接口。

    4. 任何类都可以引用接口,并对其中的方法进行自类中的实现。

    抽象类abstract class:

    1. 变量和方法均可定义权限,和普通类一样。

    2. 抽象类只能有一个继承的父类但是可以implement很多接口和普通类一样。

    3. 子类可以继承抽象类和普通类一样。换言之,抽象类不过是能够使用抽象方法的普通类。

    看到这里,相信大家都在思考,既然接口本身不能实现任何功能且只能提供一些常量,那么接口有什么意义呢?

    笔者看来接口更像是对上层的文档一样,在Java Web的中间层开发中,往往会提供接口-实现这样的开发模式,在接口类不改动的情况下,任意的改变实现是对其他层没有影响的,只要接口不改则其他层不需要改,接口起到的更像是一个API文档的作用。这样降低了应用的耦合度,增强了程序的可扩展性。

    当需要检查我们的对象都使用了哪些接口,继承了哪些类时,可以用instanceof进行检查,instanceof看起来像是一个函数名,但实际上是一个操作符,使用方法类似:

    Son son=new Son();

    if(son isntanceof Father){

    }

    符号左边是一个对象,右边是一个类名,可以检查是否具有继承关系以及implement实现关系,中文翻译可以是:可以视作。

    运用这个运算符,我们可以更好的整理好我们的继承多态结构,也可以更好的使用一些多态功能。

  • 相关阅读:
    项目笔记三
    ASP.NET小收集<9>:HTML解析
    TSQL数据维护:更改表所有者
    [转贴]SQL2005:数据类型最大值
    TSQL存储过程:ROW_NUMBER()分页
    JS收集<7>:浏览器event兼容
    统计SQLServer2005表记录数
    ASP.NET小收集<8>:JS创建对象
    JS收集<8>:HTML控件的坐标
    MySql按指定天数进行分组数据统计分析 1
  • 原文地址:https://www.cnblogs.com/cielosun/p/6580505.html
Copyright © 2011-2022 走看看