1. 抽象类、抽象方法、抽象属性的特点

(1)      关键字:abstract

(2)      抽象类只能是其他类的基类

(3)      抽象成员必须存在于抽象类中,但抽象类可以没有抽象成员,也可以有非抽象成员

(4)      抽象方法中没有方法体(方法的声明只有以分号结束,而且签名后没有大括号),抽象属相没有访 问器,但是必须要声明,它告诉编译器必须重写该方法以提供他们自己的实现

(5)      抽象方法、属性必须在子类全部中重写(实现)

(6)      抽象方法、属相不能是静态的,因为静态的不可继承

2. 抽象类的实现

(1)      实现抽象成员关键字:override

(2)      虽然抽象类不能实例化,但是可以在父类的对象中存放它的子类成员的实例

Ps:里氏替换原则,基类可以被任何的子类替换掉

(3)      在判断子类的过程中使用is运算符来检查对象运行时的类型



  1. using System;
  2.   namespace Demo1
  3.   {
  4.     public abstract class ParentClass
  5.     {
  6.       public ParentClass()
  7.       {
  8.         Console.WriteLine("父类构造函数");
  9.       }
  1.       public abstract void SayHello();
  1.       }
  2.       public class ChildClass : ParentClass
  3.       {
  4.       public ChildClass()
  5.       {
  6.         Console.WriteLine("子类构造函数");
  7.       }
  8.       public override void SayHello()
  9.       {
  10.         Console.WriteLine("我是子类");
  11.       }
  12.       public static void Main()
  13.       {
  14.         ChildClass child = new ChildClass();
  15.         child.SayHello();//显示"我是子类"
  16.         Console.ReadKey();
  17.       }
  18.     }
  19.   }






版权声明:本文为博主原创文章,欢迎转载,转载请注明出处。

C#实现多态之一抽象的更多相关文章

  1. Java面向对象理解_代码块_继承_多态_抽象_接口

    面线对象: /* 成员变量和局部变量的区别? A:在类中的位置不同 成员变量:在类中方法外 局部变量:在方法定义中或者方法声明上 B:在内存中的位置不同 成员变量:在堆内存 局部变量:在栈内存 C:生 ...

  2. Java中的继承、封装、多态、抽象

    1.继承 java 和某些面向对象语言(如 c++)在实现继承的不同之处在于java只支持单继承,不支持多重继承.即java 中一个类只能继承于另一个类.我们将被继承的类称之为父类(基类),继承类称之 ...

  3. java面向对象编程--第九章 多态和抽象

    9.1多态 在生物学中,是指一个生物或物种可以有多种不同的形式或阶段: 在OOP中,多态是指一个对象有多种形式的能力. 多态可以说是面向对象编程的精髓所在.java中之所以引入多态的概念,原因之一是它 ...

  4. Java学习笔记之——多态、抽象

    1. 多态 多态:同一种事物调用同一个方法有不同的表现行为.(同一类型操作,作用于某一类对象,可以有不同的解释,产生不同的执行结果) 应用场景;当你定义一个功能性的方法可以使用多态的概念 前提:子类继 ...

  5. Java面向对象的基本概念(对象、封装、继承、多态、抽象、接口、泛型)

    对象:是一个自包含的实体,用一组可识别的特征和行为来标识. 类:具有相同的属性和功能的对象的抽象合集.(类关键字class,首字母大写). 实例:就是一个真实的对象. 实例化:创建对象的过程,关键字是 ...

  6. day14 多态与抽象

    多态:相同的行为,不同的实现. 多态分为:静态多态和动态多态. 静态多态:在编译期即确定方法的实现和效果.——使用重载实现 动态多态:运行后才能确定方法的实现和执行效果.——使用动态绑定和重写实现 动 ...

  7. JAVA四大特征:封装,继承,多态,抽象

    1,封装 将对象的属性和方法组合成一个独立的整体,隐藏实现的细节,并提供对外访问的接口. 封装的好处: (1):隐藏实现细节.好比你买了台电视机,你只需要怎么使用,并不用了解其实现原理. (2):安全 ...

  8. java面向对象(封装,继承,多态,抽象,接口的定义和实现)

    1.封装 在面向对象程式设计方法中,封装(英语:Encapsulation)是指,一种将抽象性函式接口的实作细节部份包装.隐藏起来的方法. 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定 ...

  9. 关于继承、封装、多态、抽象和接口(Java)

    1.继承:    通过扩展一个已有的类,并继承该类的属性和行为,来创建一个新的类.已有的称为父类,新的类称为子类(父类派生子类,子类继承父类). (1)继承的优点:①代码的可重用性: ②父类的属性的方 ...

  10. C#封装、多态、抽象、接口、匿名方法等学习

    1:封装 将对象进行封装,并不等于将整个对象完全包裹起来,而是根据实际需要,设置一定的访问权限,用户根据不同的权限调用对象提供的功能,在C#语言中,可以使用修饰符public.internal.pro ...

随机推荐

  1. Struts2 对Action中所有方法进行输入校验、单个方法进行校验

    index.jsp: <body> <s:fielderror /> <form action="${pageContext.request.contextPa ...

  2. 楼天城楼教主的acm心路历程(作为励志用)

    楼主个人博客:小杰博客 利用假期空暇之时,将这几年GCJ,ACM,TopCoder 參加的一些重要比赛作个 回顾.昨天是GCJ2006 的回顾,今天时间上更早一些吧,我如今还清晰记得3 年 前,我刚刚 ...

  3. C#核编之System.Environment类

    在前面的例子中用来了Environment.GetCommandLineArgs()这个方法,这个方法就是获取用户的命令行输入,是Environment类的方法之一,该方法的返回值是string[]  ...

  4. Semantic UI基础使用教程

    自己今后要使用Semantic UI进行项目开发了,一步步的记录下来,供大家参考,也让自己去简单的学习一下,有空了就会更新一点东西,大家有什么问题可以相互交流一下,文采不是很好,希望大家要多多见谅,这 ...

  5. sqlserver事务与回滚

    如果要在Production执行数据改动必须小心,可以使用事务提前验证一下自己写的SQL是不是你期望的.尤其是Update的where 条件有问题的话,跟新的记录就会超出预期的范围.如下面的语句,一着 ...

  6. Java Tomcat Glassfish Weblogic远程debug(remote debug)

    tomcat ./catalina.sh jpda start 这条命令启动tomcat,它就会监听8000端口,等待调试器的连接. 默认监听8000端口,通过设置环境变量JPDA_ADDRESS指定 ...

  7. 第一次线上OJ水友赛

    偶然的机会遇到了这个神奇的网站http://www.luogu.org/   巧遇今天又有小比赛果断去试试,为我的蓝桥北京之旅练练手. 苦苦的在机房刷了一下午,大概做到了6点半. 最激动的是等成绩了, ...

  8. 指针和const

    将指针参数声明为指向常量数据的指针有两条理由: 这样可以避免由于无意间修改数据而导致的编译错误.      使用const使得函数能够处理const和非const实参,否则将只能接收非const数据. ...

  9. Oracle学习之start with...connect by子句的用法

    转自:http://www.blogjava.net/xzclog/archive/2010/03/05/314642.html,多谢博主分享 Oracle中start with…connect by ...

  10. 检测android机器是否有GPS模块

    public boolean hasGPSDevice(Context context) { final LocationManager mgr = (LocationManager)context. ...