父类为普通类: 内部可声明虚方法(virtual),并包含代码实现,子类中可以重写(override),也可以不重写直接用。 父类为(不可实例化的)抽象类: 可声明虚方法,同上。 也可以声明抽象方法(abstract),只能声明,要在子类中重写进行具体的实现。 ...
分类:
其他好文 时间:
2016-11-20 18:34:40
阅读次数:
200
模板方法模式(Template Mothod):在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。 UML类图如下: 要点有两个:原语操作PrimitiveOperation以及钩子Hook()方法。 代码举例 1 pu ...
分类:
其他好文 时间:
2016-11-19 23:11:15
阅读次数:
238
一、抽象类和抽象方法的概念 在基类中的虚方法有时候不可能被调用到,而只是表达一种抽象的概念,用以为它的派生类提供一个公共的界面。 C#中引入了抽象类(abstract class)的概念,可以将它定义成抽象方法。将该方法所在的类定义成抽象类。 抽象方法:只包含方法定义,但没有具体实现的方法,需要其子 ...
Java入门基础 1.IDE->Eclipse 新建程序步骤 1.创建一个Java项目 2.创建一个包(package) 也就相当于C#中的命名空间C++中的头文件 3.创建一个类 这样就完成了类的创建 2.和c#的不同之处 1.方法默认都是虚方法 2.默认的访问修饰符是没有的 3.密封不是seal ...
分类:
编程语言 时间:
2016-11-17 09:56:18
阅读次数:
173
多态的概率:多态是面向对象当中最重要的概念.多态的概念:让一个对象能够表现出多种状态(类型)实现多态:通常实现多态有三种手段:(1).虚方法(2).抽象类(3).接口多态就是对象可以表现多个类型的能力虚方法:将父类的方法标记为虚方法使用关键字 virtual 来修饰在父类中使用virtual修饰的方... ...
分类:
其他好文 时间:
2016-11-08 13:44:22
阅读次数:
344
背景:某一天不小心把基类函数写成了 虚函数virtual,子类override 重写时,有同事需要跳过父类执行祖父类的方法代码; 发现 T祖父类(self).**方法(),时异常。因为虚函数转型为祖父类时,是多态的形式,还是会执行本子类的方法,所有造成一种循环执行代码,造成栈溢出 ; 网上百度到宏哥 ...
分类:
其他好文 时间:
2016-10-28 15:33:54
阅读次数:
253
1、继承什么是继承?目的:代码重用public class 子类:父类{ }父类 基类 被继承的类子类 派生类 需要继承的类 父类构造函数的继承创建子类对象时,先调用父类构造函数,再调用子类构造函数默认调用父类无参构造函数如果子类有无参构造函数,要求父类也有无参构造函数如果调用父类的有参构造函数,显 ...
分类:
其他好文 时间:
2016-10-27 00:23:20
阅读次数:
154
1. sealed关键字 当对一个类应用 sealed 修饰符时,此修饰符会阻止其他类从该类继承。类似于Java中final关键字。 在下面的示例中,类 B 从类 A 继承,但是任何类都不能从类 B 继承。2. sealed 修饰方法或属性 能够允许类从基类继承,并防止它们重写特定的虚方法或虚属性。 ...
定义一个基类,有一个虚函数 定义三个子类,分别继承,重写,New,这个虚函数 abstract class Test { public virtual void Prinf() { Console.WriteLine("这是虚方法"); } } class SubClassA : Test { pu ...
分类:
其他好文 时间:
2016-10-13 23:39:00
阅读次数:
128