关于C#的继承结论

1.继承:继承是一个类可以使用另一个类的属性和方法(成员)

2.子类继承父类使用的符号为“  : ”(冒号)

3.子类可以继承父类私有成员,但不能访问(不能使用)

4.父类的构造,子类不能被继承

5.调用子类构造的时候,没有使用base关键字,系统会默认添加base(),并会进入父类的构造

6.子类在构造方法中可以使用base.父类属性或者父类方法 or this.父类属性或方法,但不能使用base.子类属性或方法,只能使用this

7.在子类带参构造中可以使用base(参数1,参数2)的方法传参,且base的参数的顺序是根据父类带参构造的参数顺序,而base中的参数变量名则是根据子类的带参构造变量名一致

8.继承的两大特性:a:单根性:一个类只能有一个父类   b:传递性:如果A是B的父类,B是C的父类,则C也可以调用A的属性和方法

9.new子类底层原理:

1.走到子类构造,但不进入构造体

2.转向父类,进入父类构造体执行

3.转回子类构造,执行子类构造体

4.转到Main,内存中构建出子类

时间: 2024-11-01 02:29:31

关于C#的继承结论的相关文章

继承的限制

1,一个之类只能继承一个父类,存在单继承局限 错误程序: class A {} class B {} classC extends A,B{}          // 一个子类继承了两个父类 正确程序: class A {} class B extends A {} classC extends B {}       //这种操作称为多层继承 结论:Java之中只允许多层继承,不允许多重继承,Java存在单继承局限. 2,在一个子类继承的时候,实际上会继承父类之中的所有操作(属性.方法),但是需

C++基础6 【继承】 类型兼容 satatic 多继承 虚继承 【多态】 案例 虚析构函数 重载重写重定义

[继承] 继承的访问控制域 图 类型兼容性原则  指针 与 引用 用子类直接初始化父类 类的继承模型示意 图 [继承结论] [非常重要的概念] 继承与组合混搭情况下,构造和析构调用原则 原则:先构造父类,再构造成员变量.最后构造自己 先析构自己,在析构成员变量.最后析构父类 继承中,同名的成员变量的处理办法 继承中,同名的成员函数的处理办法 派生类中的static关键字 如果静态成员变量,你没有使用,也没有初始化的话 编译不会报错 经典错误 : 类中函数默认是private的,无法在外部访问 具

[转]PHP继承竟然也需要显性基因

来源:http://www.phpchina.com/portal.php?mod=view&aid=40048 在某一年写某个模块时用到了static成员,在实现子类的过程中发现他们也共享着父类这个成员的值,具体来说就是我在某个子类A中改变了那个成员值,在另外一个子类B使用的时候结果意外的得到了A覆盖后的值.当时以为,原来static成员是在从声明的地方开始的整个类别树中共享的.后来一直隐约记得这个结论,在平常的代码里面更谨慎的使用static成员,除非确认写的类是个独立的工具类,不然不轻易使

初始继承和多态

一.子类与父类 1.子类:父类 例如: Dog(子类):Anomal(父类) 子类(派生类)父类(基类和超类) 2.子类可以继承父类那些成员 (非私有成员,但是从技术角度,可以认为是父类的所有成员) 软件系统中的两个类符合is a时可以使用继承 例如: student is a person se is a employee 鸵鸟(ostrish)is a bird(错误结论!!!) ☆:继承模式下子类构造背后到底发生了什么? 如果我们想构建一个子类对象 //在Animal父类中 class A

继承NSString,NSArray 怎么写

今天在进行一个字符串测试的时候,自定义了一个继承自NSString的类,但是出现了一些问题,查阅官方文档后得到了下面这些结论 在Objective-C中,对于NSString.NSArray等一些系统的基础类,苹果公司不推荐继承创建新类的,要想给它们扩展功能只能给它们添加新的categroy(类目). 但是直接继承的话,也是可行的,只是会出现各种问题 以NSString为例 首先,创建一个NSString的子类 BFString,不添加任何方法和属性 直接创建一个BFString的实例对象,是没

单继承与多继承中的虚函数表和虚函数指针

首先,我们了解一下何为单继承,何为多继承?? 单继承:一个子类只有一个直接父类. 多继承:一个子类有两个或多个直接父类. 单继承中的虚函数表分析: 示例程序: #include <iostream> using namespace std; typedef void(*FUNC)(); class Base { public: virtual void func1() { cout << "Base::func1()" << endl; } virt

理清javascript中prototype、__proto__、Object、Function的关系,更好地理解原型继承

本文参考了http://www.blogjava.net/heavensay/archive/2013/10/20/405440.html这篇文章,对其内容作了个简单总结,形成了几条简单的结论,让读者更容易记住prototype.__proto__.Object.Function之间的关系. 结论1:Object.prototype只是一个普通对象,它是js原型链的最顶端. (typeof Object.prototype) === object;//true Object.prototype.

【C++第十课】---继承和多态

一.函数的重写 什么叫函数的重写呢?在子类中和在父类中定义的函数类型是一样的就叫做函数的重写,注意这里的函数重写和函数重载的区别. 问题的引入:那么如果发生了函数的重写那该怎么办,编译器是如何解析的呢? 要想解决这个问题,那么我们首先得搞清楚到底什么是函数重写,下面举例说明: 1.在子类中定义与父类中原型相同的函数 2.函数重写只发生在父类与子类之间 #include <iostream> using namespace std; class Parent { public: void pri

面向对象【day07】:类的属性-继承-经典类

本节内容 类的公有属性 析构函数 类的继承 新式类和经典类 一.类的公有属性 一.概述 前面我们讲了类的私有属性,现在我们来说说类的公有属性,这边很容易被人弄混淆,有人觉的,在__init__()构造方法中,除了私有属性,其他的都是公有属性了,其实这是一个错误的结论,并不是定义在__init__()初始化方法中的属性是公有属性(除私有属性),那什么是公有属性呢?揭起了大家的好奇心. 定义:指的是所属这个类的所有对象,都可以访问的属性,叫做公有属性. 二.公有属性 2.1 定义 说明:在类中直接定