首先看下面的代码:?1234567891011121314151617using System; namespace Test{ publicclassBase { publicvoidPrint() { Console.WriteLine(Operate(8, 4)); } protectedvirtual intOperate(intx, inty) { returnx + y; } }}?12345678910namespace Test{ publicclassOnceChild : Base { protectedoverride intOperate(intx, inty) {...
第四章 继承
1,继承的类型
实现继承:
一个类派生于一个基类型,拥有该基类型所有成员字段和函数。
接口继承
一个类型只继承了函数的签名,没有继承任何实现代码。?2,实现继承
class MyDerivedClass:MyBaseClass,IInterface1,IInterface2
{
}public struct MyderivedStruct:IInterface1, IInterface2
{
}类只能继承一个基类,但可以继承多个接口
结构不能继承结构,但是结构能够继承接口?虚方法:
在基类中将方法声明为virtual,...
学习笔记------类的继承和访问:class MyBaseClass {
publicvoid PrintSun(){
Console.WriteLine("base1111111111");
}}
class MyClass : MyBaseClass
{
newpublicvoid PrintSun()
{
base.PrintSun();//访问(已经隐藏的)基类成员变量和函数
Console.WriteLine("child2222222222");
}}
class Program
{
staticvoid Main(string[] args)
{var mm = new MyClass();
mm.PrintSun();
MyBaseClass mbase = (MyBaseClass)mm;//访问(已经...
简单继承最简单的三个类public class Animal {public Animal(){Debug.Log("Construct Animal!");}
}public class Mammal : Animal {public Mammal(){Debug.Log("Construct Mamal!");}
}public class Sheep : Mammal
{public Sheep(){Debug.Log("Construct Sheep!");}
}在main里面Sheep sheep = new Sheep();子类的构造函数会依次执行基类的构造函数,没有异议。需要注意的是,没有特别声明,子类都会自动去找父类中没有参数的构造函...
在这一次的课程中,我们主要学习了C#中一些关于类的的具体应用和面向对象(OOP)的三大特点:封装(Encapsulation)、多态(Polymorphism)和继承(Inheritance)。接下来就让我们来实验一下学到的知识。 (一)This 关键字 this关键字(又称this指针)是类中所有非静态方法的隐藏指针。 调用this的方法有很多种,首先是在收到与成员变量同名的参数时,使用this可以避免混淆,就像下面过程所演示的: 成员函数SomeMeth...
建议56:使用继承ISerializable接口更灵活地控制序列化过程接口ISerializable的意义在于,如果特性Serializable,以及与其像配套的OnDeserializedAttribute、OnDeserializingAttribute、OnSerializedAttribute、OnSerializingAttribute、NoSerializable等特性不能完全满足自定义序列化的要求,那就需要继承ISerializable了。 以下是格式化器的工作流程:如果格式化器在序列化一个对象的时候,发现对象继承了ISerializable接口,那它...
publicclass Shengwu{privatestring _Name;publicstring Name{get { return _Name; }set { _Name = value; }}protectedstring Old="1231";publicvoid shengming(){Console.WriteLine("生物都是有生命的");Console.WriteLine(Old);}}class dongwu:Shengwu{privatestring _dName;publicstring DName{get { return _dName; }set { _dName = value; }}publicvoid huidong(){Console.WriteLine("动物会动");}}class Mammal:dongwu //哺乳...
继承:发生在基类和派生类中,也就是父类和子类。 子类继承父类,通过继承可以访问到父类的成员方法,也可以通过重写访问到父类的抽象或者虚方法。。。但是需要注意的一点是在执行过程中,先执行基类中的方法或者是构造函数,再执行子类中的成员方法。如果子类中定义的成员方法和父类中的成员方法一样,并且需要覆盖掉父类的成员方法则需要通过关键字 new 来处理。实现代码如下:staticvoid Main(string[] args){//很重要的一点:继...
前言:继承这点事,说多不多,说少不少,这里只描述了一些我认为的基础篇,望各位大神指教。本节参照了C#高级编程和Think in java对继承的描述,我个人认为OOP只是思想,故看明白一个就说通的,只是语法上的区别。 权限限制关键字类继承
类继承基本写法类继承的好处 继承中的Virtual(虚方法)抽象类类继承的坏处执行循序不可继承的类接口继承 1.类继承 类继承基本写法:publicclass SuperClass : Object{}publicclass SubCl...
.Net 视频学习第2季 C#面向对象 面向对象继承1查找类的命名空间快捷键:alt+shift+F10项目A中有类X,要在项目B中使用X的话,首先在项目B的引用当中添加项目A,然后在项目B的代码中添加using A;(假设项目A类X的命名空间就是A)或者在使用X时采用A.X的格式。 记录运行时间Stopwatch sw = new Stopwatch();
sw.Start();
// 代码sw.Stop();
Console.WriteLine(sw.Elapsed);Start()和Stop()是类Stopwatch的方法,Elapsed是类Stopwatch的...
继承分为两部分,接口继承和实现继承。 实现继承:表示一个新类派生于基类,他享有基类中所有的函数和字段(对基类私有函数和字段不可访问)。 接口继承:表示一个类型只继承了函数的签名,没有继承任何的实现代码,通常用于具有某种特定的属性的时候使用它。virtual(虚方法) 如果继承类想要重写基类的方法,可以把基类的方法写成虚方法,在继承类中采用override关键字重写。abstract(抽象方法和抽象类) 抽象类...
面向对象开发有三大特性(特点 / 特征) : 封装, 继承, 多态。我们今天主要讨论封装和继承,多态会在下篇中讨论。一、封装:所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。封装是面向对象的特征之一,是对象和类概念的主要特性。简单的说,一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体。在一个对象内部,某些代码或某些数据可以是私...
继承【一】实现继承classname : class1,class2,interface1...结构总是派生自<SPAN
style=‘font-family: "Times New Roman";‘>system
.valuetype类总是派生自<SPAN
style=‘font-family: "Times New Roman";‘>system.object
多重继承
虚方法 <SPAN
style=‘font-family: "Times New Roman";‘>virtual 派生类 <SPAN
style=‘font-family: "Times New Roman";‘>override
隐藏方法:在派生类中使用<SPAN
style=‘font-famil...
原文发布时间为:2009-03-03 —— 来源于本人的百度文章 [由搬家工具导入]//using System;//using System.Collections.Generic;using System.Text;namespace ConsoleApplication1{ public class Program { public static void Main() { Parent p = new Son();//输出 A from Parent! B from Son! 若改成Parent p = new Parent();那输出的都是A from Parent! B from Parent! p.A(); ...
using System.Diagnostics;using System.Text;using System.Xml;using System.Xml.Schema;using System.Xml.Serialization;using System;using System.Collections.Generic;using System.Linq;using System.Threading.Tasks;using System.IO;using System.Text.RegularExpressions;using System.Dynamic;namespace ConsoleApplication7{ public class Test { public TestDy TestDy { get; set; } } public clas...