zoukankan      html  css  js  c++  java
  • 面向对象 多态、抽象类和接口

      今天,我主要学习了多态、抽象类和接口的部分内容。

      在实际的操作中,同样都是继承了同一个父类,但是父类中的方法并不适用任何一个子类,那么在这就需要子类重新编写这个方法的主体。

      在重写成员方法时,需要父类同意子类可以重新编写自己的方法: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
    {
    
    }
  • 相关阅读:
    8.10
    今日头条笔试题 1~n的每个数,按字典序排完序后,第m个数是什么?
    Gym 100500B Conference Room(最小表示法,哈希)
    CodeForces 438D The Child and Sequence(线段树)
    UVALIVE 6905 Two Yachts(最小费用最大流)
    Gym Conference Room (最小表示法,哈希)
    hdu 2389 Rain on your Parade(二分图HK算法)
    Codeforces Fox And Dinner(最大流)
    zoj 3367 Counterfeit Money(dp)
    ZOJ3370. Radio Waves(2-sat)
  • 原文地址:https://www.cnblogs.com/hongsen3/p/5859660.html
Copyright © 2011-2022 走看看