多态就是指同一操作作用于不同的对象会产生不同的结果。在继承关系中,子类会自动继承父类中的方法,但有时父类的方法不能满足子类的需求,可以对父类的方法进行重写。重写有三点要求,1 要求子类的方法名,参数个数,参数类型必须与父类方法相同,2父类方法必须使用们virtual关键字修饰,被它修饰的方法称为虚方法,3 子类方法必须使用override的关键字修饰。需要注意的是,子类重写父类方法时,不能使用比父类中被重写的方法更严格的访问权限。
当子类重写父类的方法后,子类对象将无法直接访问父类被重写的方法,这里就可以使用base关键字,专门用于在子类中访问父类的成员.它可以调用父类的子段和方法。base.字段名,base.方法名。还能调用父类的构造方法。:base( )。
实现多态的方式有很多种,这里学习的是重写的方式。使用一个父类类型的变量来引用一个子类类型的对象,例如Aninal an1=new Cat(),创建cat子类对象,使用animal父类类型的变量an1引用。将子类对象当了父类类型来使用,这就是所谓的里氏转换原则。1 子类对象可以直接赋值给父类变量,例如Sninal an1=new Cat( ),这就是将子类对象当做父类类型使用。2 将父类变量转换为子类类型(父类变量引用的是当前的子类对象)。
在c#中提供了一个object类,它是所有类的父类。它有个tostring()方法。可以把它重写来返回一些特有的信息。
多态可以使程序变得更加灵活,从而有效提高程序的可扩展性和可维护性。
原文地址:https://www.cnblogs.com/hzusbjxg/p/10705261.html
时间: 2024-10-08 09:44:00