面向对象 多态抽象类和接口
Posted 兔小灰385
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象 多态抽象类和接口相关的知识,希望对你有一定的参考价值。
今天,我主要学习了多态、抽象类和接口的部分内容。
在实际的操作中,同样都是继承了同一个父类,但是父类中的方法并不适用任何一个子类,那么在这就需要子类重新编写这个方法的主体。
在重写成员方法时,需要父类同意子类可以重新编写自己的方法:virtual - 虚方法;子类只能重写父类允许重写的方法,只能重写虚方法:override - 重写覆盖虚方法。
基类与派生类是相对的,所有的类都可以当做父类,都可以有虚方法。
抽象类:abstract
抽象类就是为了被继承而出现的。普通的类中所有的方法都变成虚方法,没有人用最基础的方法,全部都需要重写,那么就不需要那么费劲把普通类中的方法主体都写完,而是,直接定义成抽象类,并且都写成抽象方法。
我认为,抽象类就是为了将我们所做的项目,整个放到一个大的类中,它的首要目标,不是来实现什么功能,而是将项目限定到一个范围中,在这个前提条件之下才来展开我们的项目,项目中的具体模块来继承这个抽象类,再来编写子类的具体功能。抽象类中,可以有抽象方法,也可以有普通方法。抽象方法只需要声明方法的名称和返回类型,具体方法主体是什么,继承过去以后由子类自己去实现。
例:
public abstract class Ren { public abstract string ChiFan(); public abstract string ShuiJiao(); public virtual string ShuoHua() { return "我能说话!"; } }
接口:interface
接口是为了让我们所写的类更加完善,对我们所写的类加以补充完善。在接口中,只能写抽象方法,不能写任何具体的方法,全部内容都需要在子类中进行实现。
如:
public interface GongZuo { string JiNeng(); string DiDian(); }
子类在继承抽象类以及接口时的格式:
public class NanRen : Ren, GongZuo, YuLe { }
以上是关于面向对象 多态抽象类和接口的主要内容,如果未能解决你的问题,请参考以下文章