鉴于下午要去面试,顺便把OO复习了下。
OOP的三大特征分别是:封装、继承和多态。
继承:传递性(卡车 is a 汽车)、单根性(不可以多继承)和密封性(sealed修饰的类是不能背继承的,叫做密封类)。
当子类继承父类是会隐式调用父类的无参构造函数,如果没有显示的调用,则会报错“Person”方法没有采用“0”个参数的重载。显示调用父类的属性或方法
多态:使用抽象(abstract)类和抽象方法来实现,有抽象方法的类一定是抽象类,但是抽象类中不一定都是抽象方法,也可以包含实体方法。
抽象方法没有方法体(“{ }”) 在子类中重写SayHi方法
多态的另一种实现方法是虚方法(virtual)
虚方法中可以包含方法体,可以设置默认值。在子类中可以根据需要用override重写SayHi方法。
多态中还有一个原则:里氏替换原则,可以这么理解汽车派生出卡车,卡车是汽车,但是汽车是卡车确实错误的。可以用“is操作符”和“as操作符”来处理。
is: “asd” is string 如果成立的话则返回TRUE,不成立的话就会报错;
as:“asd” is string 如果成立的话则返回TRUE,不成立的话则返回null,并不报错。
以上内容均是本人学习只用,有理解错误的地方欢迎大家指出。