美文网首页
析构 匿名 密封 多态

析构 匿名 密封 多态

作者: fooliker | 来源:发表于2017-03-16 15:55 被阅读0次

1.析构方法

格式: ~类名(){ };

没有返回值

没有参数列表

不能重载

没有访问修饰符

垃圾回收机制会自动调用 不能手动调用

析构方法只能定义在类里,一个类只有一个析构方法

析构方法在继承中顺序执行:先派生类 再父类

如果不在一个类中 从后往前执行析构方法

2.匿名类型

根据赋的初值自动推导变量类型

必须要赋初始值 否则系统无法推导

变量类型一经确定 就不允许改变

3.密封

C#允许使用sealed关键字来修饰类和方法

当修饰类的时候表示该类不允许被继承

当sealed修饰方法的时候表示该方法不能派生类被重写,但是可以被派生类覆盖(隐藏 new).

用法:派生类可以通过sealed阻止被继承,内部方法通过sealed可以阻止被重写。

对一个类应用 sealed 修饰符时,此修饰符会阻止其他类从该类继承。

还可以在重写基类中的虚方法或虚属性的方法或属性上使用 sealed 修饰符。

(不是重写的方法不能密封)

4.多态 (提高代码的维护性和拓展性  不是很理解...)

同一操作,作用不同对象有不同的实现

里氏转换

原则一:子类对象可以直接赋值给父类对象

Person p = new Student();

当父类指针指向子类实例对象的时候

调用虚方法执行的是派生类里面重写之后的方法

调用隐藏方法执行的是基类里面的原方法

里氏转换的作用:消除不同子类之间类型的差异,把其类型转换成统一的数据类型,这样就可以写出一套通用的代码,也就是可以最大限度的重用代码,同时也提高了程序开发的效率。

原则二:父类可以转换成子类,这样就可以调用子类里面的公有成员了

as 关键字

将父类指针转向实际类型

转换之后无论是调用虚方法还是隐藏方法,最终执行的都是派生类里面的方法

Student s = p as Student;

多态的好处:

1.把不同子类对象都当做父类来看,屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化。

2.提高代码的维护和可扩展性。

is 关键字

判断一个对象是否是指定的类型,是的话返回true 不是的话返回false

用一个bool 值变量来接收

先判断Student 是否是 Person类型 如果是就强制转换,否则就不转换

如果不判断转化不成功系统会报错

Person person = new Person(); Student student = new Student();

bool flag = student is person;

If (flag) { Person per = (Person)student; }

相关文章

  • 析构 匿名 密封 多态

    1.析构方法 格式: ~类名(){ }; 没有返回值 没有参数列表 不能重载 没有访问修饰符 垃圾回收机制会...

  • C++总结

    函数 为什么基类的析构函数用虚函数 在实现多态时,当用基类操作派用类,在析构时防止只析构基类而不析构派生类的状况发...

  • 关键字

    类 class 抽象 abstract 密封 sealed 接口 interface 析构 ~car 结构体 s...

  • 2.0 C++远征:虚析构函数

    2-4虚析构函数 [TOC] 1.为什么引进虚析构函数? 多态中存在的问题:内存泄漏。为了解决内存泄漏的问题,引入...

  • Delete动态数组

    即使把析构函数定义为virtual 依然会无法调用到派生类的析构函数 因为数组的多态会导致未定义的行为 编译器需要...

  • 虚函数

    如果父类的析构函数没有声明为虚函数的话在父类的指针上调用析构函数会有什么后果? 屏蔽多态,子类申请的资源将不会被释...

  • 十六、多态、静态联编和动态联编、虚析构函数、三重

    1.多态2.多态意义3.静态联编和动态联编4.虚析构函数5.重载、重写、重定义 1.什么是多态 1.1浅析多态的意...

  • Python 之路06 - 面向对象

    本节大纲: 特性:class、object 封装 继承 多态语法\属性\方法构造函数\析构函数私有方法\私有属性类...

  • 条款07:为多态基类声明 virtual 析构函数

    总结: 1、带多态性质的base classes 应该声明一个virtual 析构函数。如果class 带有任何 ...

  • 虚析构函数的作用与理解

    基类的析构函数一般都会被声明成虚函数,原因是,若是不设置成虚函数,在实现多态时,将子类对象赋给基类指针,在析构的过...

网友评论

      本文标题:析构 匿名 密封 多态

      本文链接:https://www.haomeiwen.com/subject/yidjnttx.html