深入理解多态

简介: 深入理解多态

一、里氏替换原则:

1.子类对象可以赋给父类变量,也可以说子类可以替换父类并且出现在父类能够出现的任何地方,且程序的行为不会发生变化,但是反过来,父类对象不能替换子类对象的,。这种特性被称作“里氏替换原则”。

eg:People p = new Student(); //可以

Student s = new People(); //不可以

二、is和as的用法:

1.is是用来判断类型的(检查对象和指定的类型是否兼容)

2.as是用来转换类型的(主要用在两个对象之间)

三、父类类型作为参数:

1.里氏替换原则指出子类对象可以替换父类对象,那么在开发程序时,可以编写以父类类型作为形式参数的方法,在实际调用时传入子类对象,从而实现多态。

2.eg:

父类

public class TrafficTool{

public virtual void Run(){

Console.WriteLine(“车在行驶”);

}

}

//子类

public class Bus:TrafficTool{

public override void Run(){

Console.WriteLine(“公共汽车在行驶”);

}

}

//测试类

public class Test{

public static void main(String []args){

Student stu = new Student(1,“张三”);

stu.GoHome(new Bus());//传递实际创建的子类对象

}

}

四、抽象类和抽象方法:

1.抽象类:

语法:public abstract class 类名{}

2.含有抽象方法的类必然是抽象类,但是抽象类里面的方法不一定都是抽象方法

3.抽象类不能实例化

4.抽象方法:没有方法体,语法是:访问修饰符 abstract 返回值类型 方法名();

五、面向对象的三大特征:

1.封装:保证对象自身数据的完整性和安全性

2.继承:建立类之间的关系,实现代码复用,方便系统的扩展

3.多态:相同的方法调用可实现不同的实现方式。

相关文章
|
编译器 C语言 C++
49 C++ - 多态
49 C++ - 多态
42 0
|
1月前
|
存储 编译器 数据安全/隐私保护
【C++】多态
多态是面向对象编程中的重要特性,允许通过基类引用调用派生类的具体方法,实现代码的灵活性和扩展性。其核心机制包括虚函数、动态绑定及继承。通过声明虚函数并让派生类重写这些函数,可以在运行时决定具体调用哪个版本的方法。此外,多态还涉及虚函数表(vtable)的使用,其中存储了虚函数的指针,确保调用正确的实现。为了防止资源泄露,基类的析构函数应声明为虚函数。多态的底层实现涉及对象内部的虚函数表指针,指向特定于类的虚函数表,支持动态方法解析。
33 1
|
7月前
|
C++
c++多态
c++多态
60 0
什么是多态?
什么是多态?
57 0
多态你真的了解吗?
多态你真的了解吗?
75 0
|
7月前
|
存储 编译器 C++
|
7月前
|
编译器 C++
【C++】:多态
【C++】:多态
67 0
|
存储 设计模式 编译器
多态【C++】
多态【C++】
69 0