目录
1.什么是子类型
由于子类型关系的存在,某个对象可能同时属于多种类型,因此,子类型是一种类型多态的形式,也被称作子类型多态(subtype polymorphism)或者包含多态(inclusion polymorphism)。在面向对象程序设计中,多态一般仅指这里所说的“子类型多态”,而“参数多态”则一般被称作泛型程序设计。
子类型与面向对象语言中(类或对象)的继承是两个概念。子类型反映了类型(即面向对象中的接口)之间的关系;而继承反映了一类对象可以从另一类对象创造出来,是语言特性的实现。因此,子类型也称接口继承;继承称作实现继承。
如果一个类型S是另一个类型T的子类型,则对用T表达式的所有程序P,当用S替换程序P中的T时,程序P的功能不变。
在c++中,以public方式继承的派生类可看做基类的子类型。
2.什么是多态
多态性是面向对象编程的又一个重要特征,它是指在父类中定义的属性和方法被子类继承之后,可以具有不同的数据类型或表现出不同的行为,这使得同一个属性或方法在父类及其各个子类中具有不同的含义。
对面向对象来说,多态分为编译时多态和运行时多态。其中编译时多态是静态的,主要是指方法的重载,它是根据参数列表的不同来区分不同的方法。通过编译之后会变成两个不同的方法,在运行时谈不上多态。而运行时多态是动态的,它是通过动态绑定来实现的,也就是大家通常所说的多态性。
3.什么是重写
重写(override):一般都是表示子类和父类之间的关系,其主要的特征是:方法名相同,参数相同,但是具体的实现不同。
4.什么是重载
能够在类中定义多个具有相同名称的方法
5.什么是继承
Java 中的继承就是在已经存在类的基础上进行扩展,从而产生新的类。 已经存在的类称为 父类、基类或超类 ,而新产生的类称为 子类或派生类 。
6.什么是委派
委派模式是一种行为型模式,它允许对象用组合去实现像继承一样的代码复用。
7.什么是CRP
合成复用原则(Composite Reuse Principle,CRP) 又叫 组合/聚合复用原则(Composition/Aggregate Reuse Principle,CARP) 。
类的复用一般分为两种:一种是组合/聚合,另一种则是继承。 继承复用的优点在于扩展性较好,子类继承父类,父类的大部分功能都可以提供给子类使用,修改和扩展相对比较容易。
8.什么是正则表达式
正则表达式定义了字符串的模式。
正则表达式可以用来搜索、编辑或处理文本。
正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。