zoukankan      html  css  js  c++  java
  • 继承的一点知识

    不同的继承方式

    1、  实现继承:表示一个类型派生于一个基类型,它拥有该基类型的所有成员字段和函数。在实现继承中,派生类型采用基类型的每个函数的实现代码,除非在派生类型的定义中指定重写某个函数的实现代码。在需要给现有的类型添加功能,或许多相关的类型共享一组重要的公共功能时,这种类型的继承非常有用。

    2、  接口继承:表示一个类型只继承了函数的签名,没有继承任何实现代码。在需要指定该类型具有某些可用的特性时,最好使用这种类型的继承。

    C#不支持多重实现继承,允许多重接口继承。C#类可以派生自另一个类和任意多个接口。

    结构和类:

    1、  结构(值类型)总是派生自System.ValueType,它们还可以派生自任意多个接口。

    2、  类(引用类型)总是派生自用户选择的另一个类,它们还可以派生自任意多个接口。

    实现继承

    如果要声明派生自另一个类的一个类,可以使用如下语法:

    class MyDerivedClass: MyBaseClass
    
    {
    
             //function code
    
    }

    如果类(或者结构)也派生自接口,则用逗号分隔列表中的基类和接口:

    public class MyDerivedClass: MyBaseClass, Interface1, Interface2
    
    {
    
             //etc
    
    }

    虚方法

    把一个基类函数声明为virtual,就可以在任何派生类中重写该函数:

    class MyBaseClass
    
    {
    
             public virtual string VirtualMethod()
    
    {
    
             //code
    
    }
    
    }

    也可以把属性声明为virtual。

    Public virtual string ForeName{}

    Private string foreName;

    在C#中,默认函数不是虚拟的,但可是显式的声明为virtual,而在Java中,所有函数都是虚拟的。C#要求在派生类的函数重写另一个函数时,要使用override关键字显式声明。

    如果您觉得感兴趣的话,可以添加我的微信公众号:一步一步学Python
  • 相关阅读:
    一个接口,多个实现
    jmeter压力测试
    程序卡住了还是怎么了?
    Spring集成Jedis(不依赖spring-data-redis)(单机/集群模式)(待实践)
    Spring集成Redis方案(spring-data-redis)(基于Jedis的单机模式)(待实践)
    Redis基于Java的客户端SDK收集
    Ubuntu清理内存命令(效果不明显)
    Memcached与Spring集成的方式(待实践)
    Memcached的几种Java客户端(待实践)
    Redis集群方案收集
  • 原文地址:https://www.cnblogs.com/xingzhui/p/5682542.html
Copyright © 2011-2022 走看看