using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; /// <summary> /// C# 的继承是为实现创建一个新类,同时重用,扩展,修改已有的另一个类里的一种方式。 /// 同时它应该遵循 Is-A 原则。还重点介绍了实现继承的几个关键字。 /// override 与 new 的区别 /// </summary> namespace lesson9 { class Program { static void Main(string[] args) { Dog dog = new Dog();//实例化的时候先会调用父类的构造函数 dog.Age = 10; dog.Bite(); dog.GetAge(); dog.BiteMan(); Animal oldDog = new Dog();//隐式的类型转换 实例化一个animal 类型的 dog对象 oldDog.Bite();//overwrite 是重写了父类的方法 oldDog.BiteMan();//new 出来 子类对父类影藏 父类中的biteman并没有重写 ((Dog)oldDog).BiteMan(); Console.ReadLine(); } } class Animal{ public Animal() { Console.WriteLine("Animal constructor"); } public int Age { get; set; } public virtual void Bite()//virtual 意思在与继承中可以重写 { Console.WriteLine("Animal bite"); } public virtual void GetAge() { Console.WriteLine(Age); } public void BiteMan() { Console.WriteLine("Animal bite man"); } } sealed class Dog:Animal //这里的Dog 前面加了sealed就无法被继承 { public Dog() { Console.WriteLine("Dog constructor"); } public override void Bite() { Console.WriteLine("Dog bite"); } public new void BiteMan()//把父类的方法,在子类中影藏 { Console.WriteLine("Dog bite man"); } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; /// <summary> /// 1.C#的静态多态 在编译时就已经实现了多态 ///2.C#的动态多态 在运行时实现的多态 /// </summary> namespace lesson10 { class Program { static void Main(string[] args) { PrintHello(); PrintHello("world");//这里是方法的多态 重载 Complex c1 = new Complex(); Complex c2 = new Complex(); c1.Number = 2; c2.Number = 3; Console.WriteLine((c1 + c2).Number); Human human1 = new Man();//这里实现了动态的重载 Human human2 = new Woman(); human1.CleanRoom(); human2.CleanRoom(); Console.WriteLine(c2); //some logic //Human h=new Human(); //if(he is man) //h.CleanRoomSlowly(); //else if (h is woman) //h.cleanroomqucik(); //some logic Console.ReadLine(); } public static void PrintHello() { Console.WriteLine("Hello"); } public static void PrintHello(string toWho) { Console.WriteLine("Hello {0}", toWho); } //运算符的重载 对加号的重载 class Complex { public int Number { get; set; } public static Complex operator +(Complex c1, Complex c2) { Complex c = new Complex(); c.Number = c1.Number + c2.Number; return c; } //实现了对toString 方法的重写 public override string ToString() { return Number.ToString(); } } class Human{ public virtual void CleanRoom() { Console.WriteLine("Human clean room"); } } class Man:Human { public override void CleanRoom() { Console.WriteLine("man Clean slowly"); } } class Woman : Human { public override void CleanRoom() { Console.WriteLine("women Clean quaikly"); } } } }
相关推荐
C#是微软推出的面向对象的程序设计语言,分享的这个资源是关于C#中继承与多态的一个简单使用案例
C# 一个完整的类 面向对象三大特性 封装 继承 多态 的示例 封装通过私有字段和公共方法来实现对数据的访问控制。 继承通过派生类Student继承自Person类,获得了Person类的所有属性和方法,并在此基础上扩展了自己的...
金旭亮《C#面向对象程序设计》教案_5:继承、接口与多态。此教案在前4讲的基础之上讲解初学者者比较难于理解的“多态”特性。包括一个39页的PDF文档及数个VS2010示例。前几讲的教案请访问...
对象编程语言最容易搞混这些概念:重载、多态、虚方法、抽象方法。还有这些关键字abstract/virtual/base/overrid/new应该在什么时候用。 本文档用最精简的文字描述了这些概念的区别,并有源码示例。刚看可能觉得写的...
c#面向对象 面向对象的特性 各种面向对象编程语言相互有别,但都能看到它们对面向对象三大机制的支持,即: “封装、继承、多态”
本文主要介绍了面向对象的三大特性:封装、继承、多态,提供了简单的示例供大家参考和理解。
主要介绍了C#中面向对象编程机制之多态学习笔记,本文总结了个人对多态的理解以及接口多态、继承多态等内容,并给出了代码示例,需要的朋友可以参考下
一个简单的基于C# 面向对象开发的计算器,包括了,继承,多态,设计模式...
刚学c#查找资料,用C#做了个计算器,功能不太完善,希望给大家有点提示。
C# ASP。NET 面向对象 对象 类 多态 继承 封装 一眼就能看出来 让你彻底理解
资源中包含类的一些简单知识, 对继承、多态、封装的介绍,构造函数和析构函数介绍...以及一些实例讲解...简单易懂..想学习的可以从基础学起...
面向对象编程 OOP编程的相关技术 OOP的特征:封装、继承和多态 接口
具体介绍了其用法,方法的定义,重载的定义以及如何使用重载,继承和多态的使用。
继承是面向对象程序设计的主要特征之一,允许重用现有类去创建新类的过程。下面使用示例学习一下c#继承与多态
c#贪吃蛇,使用面向对象技术,封装继承和多态。实现了蛇的增长,死亡和运动。重要代码注释详细
学习面向对象的设计,序列化等运用,功能齐全,可以学习面向对象继承与多态
C#学习是Android客户端目前最全面的免费离线C#学习书籍,从C#入门到C#面向对象编程,提高您对C#的基础理解和全面掌握。主要内容包括: 1、C#变量、数据类型 2、C#面向对象 3、C#封装、继承、多态 4、面向接口编程 5...
C#学习是Android客户端目前最全面的免费离线C#学习书籍,从C#入门到C#面向对象编程,提高您对C#的基础理解和全面掌握。主要内容包括: 1、C#变量、数据类型 2、C#面向对象 3、C#封装、继承、多态 4、面向接口编程 5...