zoukankan      html  css  js  c++  java
  • 类之间的转换(总结)

    一.隐式转换

    • 从任何引用类型到object。
    • 从任何类A到其基类B(或着后续基类),也即A派生自B。
    • 从任何实现I接口的类A到接口I.
    • 从任何接口I1到其基接口I2(或着后续基接口)。

    二.显式转换

    • 从object到任何其它引用类型。
    • 从基类B到其子类A.
    • 从任何类A到任何接口I(类A不能被密封,A不实现接口I)
    • 从任何接口I到任何类B(类B实现接口I,切不密封)
    • 从任何接口I2到任何接口I1(前提是接口I2不是I1派生的)

    测试代码如下:

     
    using System;

    namespace ConvertClass
    {
        interface IDatabase
        {
            void Query();
        }
        interface IFile
        {
            void Save();
        }
        class Document : IFile
        {
            public void Save()
            {
            }
        }
        class Sheet : Document, IFile
        {
        }
        class Test
        {
            public static void Main()
            {
                Sheet sheet = new Sheet();
                Document doc = sheet; //隐式的转化,子类Sheet到基类Document
                IFile file = sheet;//隐式的转化,sheet到实现了的接口IFile
                object o = sheet;//隐式的转化,类sheet到object  
                //======================================================//
                //Document doc2 = new Document();
                file = doc;//隐式的转化,Document到实现了的接口IFile
                object obj = doc;//隐式的转化,类Documnet到object
                IDatabase db = (IDatabase)doc;//显式转化,Docunmet不实现接口IDatabase
                sheet = (Sheet)obj;          //显式转化,从object到sheet类
                sheet = (Sheet)file;//显式转化,从接口IFile到实现它的类
                file = (IFile)db;//显式转化,接口IFile不是从IDatabase派生的
            }
        }
    }
  • 相关阅读:
    hadoop
    spark
    docfetcher
    redis参考资料
    Redis系列-存储篇sorted set主要操作函数小结
    predis操作大全
    composer安装使用
    寒假作业2
    寒假作业随笔
    面向对象寒假作业编程题
  • 原文地址:https://www.cnblogs.com/rohelm/p/2384110.html
Copyright © 2011-2022 走看看