zoukankan      html  css  js  c++  java
  • 抽象类与接口比较

    并非只能通过继承使用多态性,还能通过接口使用。和抽象类不同,接口不能包含任何实现。下面对它们进行了比较。

    1.抽象类可以不包含抽象方法, 包含抽象方法的类一定是抽象类。

    2.隐式实现的话实现的方法属于实现的类的,可以直接通过类的对象访问,显式实现的话方法是属于接口的,可以看成是寄托在类中实现的,访问这些方法时要先把对象转换成接口对象,然后通过接口对象调用,比如Int32显式实现了IConvertible接口,调用IConvertible接口的ToSingle方法时必须先将Int32对象转换成IConvertible接口对象,例如:
    Int32 x=5;
    Single s=((IConvertible)x).ToSingle(null);

     3.接口中不能有抽象方法,也不能有虚方法;抽象方法不能声明主体,虚方法必须声明主体;实现类必须实现继承类的抽象成员(override),不必实现虚方法,若要重写虚方法,请使用关键字override/new 。

    规范:一般要优先选择类,用抽象类将契约(类型做什么)与实现细节(类型怎么做)分离开。

  • 相关阅读:
    JSP 使用
    Spring MVC 读取静态资源时404错误
    Java及Android开发环境搭建
    堆和栈的区别
    fork Bomb
    Hbase Shell常用命令
    CSS选择器的系统介绍
    JavaScript中的位置坐标
    JavaScript事件
    战略型、战术型
  • 原文地址:https://www.cnblogs.com/chenh/p/10462328.html
Copyright © 2011-2022 走看看