C#之里式转换原则

面向对象六大原则

1.单一职责原则
2.开闭原则
3.里式转换原则
4.依赖倒置原则
5.接口隔离原则
6.迪米特原则

里式转换原则

定义:

1.子类对象可以直接赋值给父类变量

class A  //父类
{
}

class B:A  //子类
{
}

A a = new B();
//或者
A a;
B b = new B();
a = b;

a为父类变量,b/new B()创建的是子类对象,上面的代码将子类对象赋值给父类变量
类比:这一点可以和Java中的上转型对象进行类比
2.子类对象可以调用父类中的成员,但是父类对象永远只能调用自己的成员。父类对象在调用方法时,调用的是子类重写后的方法,相当于就是创建了一个子类对象,然后子类对象调用重写的方法
类比:这一点也是和Java中的上转型对象的相关知识相同
3.如果父类对象中装的是子类对象,可以将这个父类对象强制转换为子类对象
这时候就又可以调用子类的方法了
类比:Java中上转型对象

is和as进行类型转换

is:如果转换成功,返回true,失败返回false
as:如果转换成功,返回对应的对象,失败返回null

你可能感兴趣的:(C#之里式转换原则)