abstract类是抽象类,不能够实例化,大家都知道,abstract类往往和接口interface一块儿使用,针对接口中一些公共的方法进行实现,然后实体类去继承抽象类和接口。虽然abstract类不能实例化,但是abstract类可以有构造函数,其构造函数和实体类的构造函数没什么区别。如下:

 abstract class A
{
public A()
{
Console.Write("A ");
} public virtual void Method()
{
Console.Write("AMethod "); }
} class B:A
{
public B()
{
Console.Write("B ");
} public new void Method()
{
Console.Write("BMethod "); }
}

今天遇到一个问题是这样:

 A o = new B();
o.Method();

猜想输出结果是什么呢?我第一眼给出的答案是B AMethod;在我想象中抽象类A不能够实例化,所以A的构造函数无效。

运行以后发现答案是A B AMethod;这说明了abstract类的构造函数和类的构造函数是一样的,可以被子类继承,只能不能用new创建而已。

事实证明,abstract类除了不能用new实例化和类没什么区别的更多相关文章

  1. 不可或缺 Windows Native (21) - C++: 继承, 组合, 派生类的构造函数和析构函数, 基类与派生类的转换, 子对象的实例化, 基类成员的隐藏(派生类成员覆盖基类成员)

    [源码下载] 不可或缺 Windows Native (21) - C++: 继承, 组合, 派生类的构造函数和析构函数, 基类与派生类的转换, 子对象的实例化, 基类成员的隐藏(派生类成员覆盖基类成 ...

  2. c# 事实证明,abstract类除了不能用new实例化和类没什么区别

    abstract类是抽象类,不能够实例化,大家都知道,abstract类往往和接口interface一块儿使用,针对接口中一些公共的方法进行实现,然后实体类去继承抽象类和接口.虽然abstract类不 ...

  3. 3星|林毅夫《战胜命运》:事实证明华盛顿共识是错误的,GIFF是穷国发展正道。

    本书是林毅夫与喀麦隆一位经济学家合著.基本的观点是:事实证明华盛顿共识是错误的,GIFF是穷国发展正道.GIFF的主要思想是政府找到对标国家,强力推行产业政策. 作为一个经济学外行,读后感觉关于华盛顿 ...

  4. 【转】C#类的分类(静态类、实例类、嵌套类、结构、简单的抽象类、简单的密封类)

    静态类 -------------------------------------------------------------------------------- 静态类就是在class关键字前 ...

  5. 转:从pickle看python类成员的动态加载和类的定位

      pickle是Python轻便的对象序列化工具.使用pickle可以方便地把python对象写入文件对象中,或者像soap那样在socket间传送.     按照python的一贯作风,类的成员在 ...

  6. python开发学习-day07(面向对象之多态、类的方法、反射、新式类and旧式类、socket编程)

    s12-20160227-day07 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: ...

  7. java入门学习(4)— 类,对象理解,如何创建类,对象

    1.什么是类?具有一定相同的属性的对象的集合就叫类.2.对象:类的具体实例,就是类的实例化.比如学生是一个类(student),那学生里面的小红就是一个对象,一个有学生的属性的对象.3.如何定义一个类 ...

  8. StringBuilder类的作用,以及与String类的相互转换

    # 转载请留言联系 先看一段String类的字符串拼接的代码. String s = "hello" 会在常量池开辟一个内存空间来存储”hello". s += &quo ...

  9. 反射01 Class类的使用、动态加载类、类类型说明、获取类的信息

    0 Java反射机制 反射(Reflection)是 Java 的高级特性之一,是框架实现的基础. 0.1 定义 Java 反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对 ...

随机推荐

  1. SQLAchemy、MYSQL、PYMYSQL

    什么是数据库? 个人理解:将一些有关系的数据组织在一起,并建立一定规则便于查询.修改.删除我们关系的数据仓库. 常用的数据库:mysql.oracle.sqlserver等. 接下来我们主要讲mysq ...

  2. 修改hive分区表,在分区列前增加一个字段

    本文主要为了测试,在有数据的分区表中增加新的一个非分区字段后,新数据加入表中是否正常. 原始数据 1;zhangsan 2;zhangsan 3;zhangsan 4;lisi 5;lisi 6;li ...

  3. Socket实现粗略的Android聊天功能

    面试时写过,但是很乱,今天看到代码库里有一个,还是很规范的,贴出来. 主要用到俩类,一个是ServerSocket.class 一个是Socket.class. 记得要加权限:  <uses-p ...

  4. Ftp类

    using System; using System.Collections.Generic; using System.Text; using System.Net; using System.IO ...

  5. 99乘法表(bash)

    awk方式: # awk 'BEGIN{for(i=1;i<=9;i++){for(j=1;j<=i;j++){printf j"x"i"="i*j ...

  6. Opera浏览器导出收藏到Chrome,和几个Chrome的一些小技巧

    Opera浏览器还是不错的,但是用着不是特别爽,老是感觉怪怪的,也说不上来哪里不好. 还是换回了Chrome浏览器,Chrome浏览器有一个让我念念不忘的地方,就是收藏夹会自动显示,当打开网页之后,又 ...

  7. JS自动格式化输入的数字/千位分隔符

    <script> function cc(s){         if(/[^0-9\.]/.test(s)) return "invalid value";     ...

  8. .Net Office开源组件

    1.NPOI NPOI 是 POI 项目的 .NET 版本.POI是一个开源的Java读写Excel.WORD等微软OLE2组件文档的项目.使用 NPOI 你就可以在没有安装 Office 或者相应环 ...

  9. CMAKE 配置选项

    CMake Configuration Options 注: 本文翻译自 dcmtk_wiki: Howto_CMakeConfiguration. DCMTK版本(原文):dcmtk-3.6.0 C ...

  10. Tcp方式采集CNC兄弟设备数据

    先说下为了采集CNC兄弟设备的数据可谓是一波三折. 因为首次接触brother设备(CNC)是直接在设备上设置IP.用户名.密码,然后直连PC,用Ftp可以查看和下载CNC brother设备里的数据 ...