继承 多态 封装
封装:
1、定义
Why:防止类中的数据被恶意修改
封装(what):将类的某些信息隐藏在类内部(private),不允许外部程序直接访问,而是通过该类提供的公共属性(public)来实现对隐藏信息的操作和访问
How:
快捷键:prop+TAB propfull+TAB
//这种封装不能修改属性的限制 prop+TAB
继承:
特征:
1、子类继承了父类的属性和方法(public、protected),但是构造方法不能被继承
2、子类使用构造方法调用父类构造方法用 base()
3、创建子类对象时,系统默认先调用父类构造方法,然后再调用子类构造方法
4、子类使用父类的属性和方法用 base 关键字(public、protected)
注意:
当父类有有参构造方法时,如果子类有构造方法(无参或有参),要求父类必须有一个无参构造方法。
如果子类没有构造方法,父类也需要提供一个无参构造方法。
如果不提供,子类构造方法会报错!
多态:
多态(what):多态是同一个行为具有多个不同表现形式或形态的能力。
多人做一件事情,结果不一样
多态的实例:
- 实现多态的两个要素(how):
1)子类重写父类方法
2)使用父类的类型(子类转换为父类:向上转型)
class Animal
{
public virtual void call() {
Console.WriteLine("无声的叫唤");
}
}
class Dog : Animal
{
// new的作用是隐藏父类的同名方法
//public new void call() {
//Console.WriteLine("叫声:汪~汪~汪~");
//}
public override void call() {
Console.WriteLine("叫声:汪~汪~汪~");
}
public void smell() {
Console.WriteLine("嗅觉相当不错!");