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
    {
    
    }
  • 相关阅读:
    mysql复合索引的优点和注意事项
    linux服务器时间更新
    mysql慢日志
    Proftpd linux服务器FTP安装配置
    js 截取字符串
    在工信部注销网站备案
    史玉柱传奇
    css white-space属性
    获取微信授权
    禁用ipv6
  • 原文地址:https://www.cnblogs.com/hongsen3/p/5859660.html
Copyright © 2011-2022 走看看