面向对象:多态;

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象:多态;相关的知识,希望对你有一定的参考价值。

(强类型,如C#,里面能多态,弱类型,如js,里面不能多态)
分为两种:1.编译多态,比如函数重载

2.运行多态,
概念:当父类引用指向子类实例的时候,由于子类对父类的方法进行了重写,在调用该方法的时候表现出的不同就称为多态。

关键字:virtual --虚方法
override--重写(对父类的虚方法进行重写)

条件:必须要有继承,父类引用指向子类实例,子类必须对父类的方法进行重写

里氏代换原则:
如果有一个地方需要使用到父类对象,那么你可以将一个子类对象给他。
static void Main(string[] args)
{
DongWu dw = new Cat();

Dog d = new Dog();
China c = new China();

Console.WriteLine(ChiRen(c));
Console.ReadLine();
}

public static string CeShi(DongWu d)
{
return "ok";
}

public static string ChiRen(Ren r)
{
return "人类真好吃";
}
}


//partial class Ren
//{
// private string name;

// public string Name
// {
// get { return name; }
// set { name = value; }
// }
//}

class DongWu
{
public virtual string Eat() //虚方法
{
return "该动物在吃饭";
}
}
class Dog:DongWu
{
public override string Eat() //重写
{
return "狗正在吃骨头";
}
}
class Cat : DongWu
{
public override string Eat()
{
return "猫正在吃鱼";
}
}


class Ren
{
}

class China : Ren
{
}

以上是关于面向对象:多态;的主要内容,如果未能解决你的问题,请参考以下文章

举例说明java面向对象的封装继承多态

设计模式面向对象 - 多态 ( 面向对象 3 要素 | 多态 提升 程序扩展性 | 多态示例 )

JAVA面向对象,继承、封装、多态

python面向对象(封装继承多态)+ 面向对象小栗子

.啥是多态?面向对象程序设计为啥要引入多态的特性?使用多态有啥优点?

0面向对象三大机制 封装继承多态