using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 模拟磁盘打开文件 { class Program { static void Main(string[] args) { Console.WriteLine("请…
抽象类使用abstract修饰符声明: 不能创建抽象类的实例: 抽象类只能用作其他类的基类: 抽象类中可以包含抽象成员和普通的非抽象成员: 抽象类自己可以派生自另外一个抽象类: 任何派生自抽象类的[类],必须使用override关键字,实现该抽像类所有的抽像成员,除非派生类自己也是抽象类. 示例: 1.基类 using System; using System.Collections.Generic; using System.Linq; using System.Text; using…
四.抽象类和它的实例 Delphi中有一个类称为是抽象类,你不能天真的直接为它创建一个实例,如 var StrLst: TString; begin StrLst:= TString.Create; StrLst.Add('I love China'); StrLst.Free; end; 这是不对的,因为TString是一个抽象类. 那么怎么为这样的抽象类构造实例呢?答案就是借助它的非抽象子类.我们知道TString有一个TStringList的非抽象子类.所以可以这样操作 var StrLs…
里氏代换原则.可以用子类的对象替代父类的对象. 抽象依赖原则.依赖——形参,关联 一.抽象方法: 在一些父类中,某些行为不是非常明确,因此无法用代码来具体实现,但是类必须具备此方法,因此把这样的方法定义为抽象方法.abstract 特点:1.只声明,不实现.2.加abstract关键字. eg: public abstract class Ren //类中含有抽象方法,此类也必须是抽象类. { public abstract void Eat(); //以分号结束,没有花括号 } class C…
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 多态 { class Program { static void Main(string[] args) { //员工9点打卡, 经理11点打卡,程序员不打卡 Employee emp = new Employee(); emp.Daka(); M…