对象创建混乱

本文关键字:混乱 创建 对象 | 更新日期: 2023-09-27 17:50:20

我正在寻找接口的例子,我找到了一个。示例如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace InterFaceDemo
{
    interface IOne
    {
        void ONE();//Pure Abstract Method Signature
    }
    interface ITwo
    {
        void TWO();
    }
    interface IThree:IOne
    {
        void THREE();
    }
    interface IFour
    {
        void FOUR();
    }
    interface IFive:IThree
    {
        void FIVE();
    }
    interface IEVEN:ITwo,IFour
    {
    }
    class ODDEVEN:IEVEN,IFive//Must Implement all the abstract method, in Derived class.
    {
        public void ONE()//Implementation of Abstract Method.
        {
            Console.WriteLine("This is ONE");
        }
        public void TWO()
        {
            Console.WriteLine("This is TWO");
        }
        public void THREE()
        {
            Console.WriteLine("This is THERE");
        }
        public void FOUR()
        {
            Console.WriteLine("This is FOUR");
        }
        public void FIVE()
        {
            Console.WriteLine("This is FIVE");
        }
    }
}

Program.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace InterFaceDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("This is ODD");
            IFive obj1 = new ODDEVEN();
            obj1.ONE();
            obj1.THREE();
            obj1.FIVE();
            Console.WriteLine("'n'nThis is EVEN");
            IEVEN obj2 = new ODDEVEN();
            obj2.TWO();
            obj2.FOUR();
            Console.ReadLine();
        }
    }
}

从这个例子中,接口的概念被清除了,但有一件事让我感到困惑,那就是这一行…

IFive obj1 = new ODDEVEN();

从我的想法来看,他应该是这样做的

ODDEVEN obj1 = new ODDEVEN();

当他正在制作"ODDEVEN"类的对象时,有没有人可以用简单的话解释我这个对象的创建,因为我是编程新手…提前感谢

对象创建混乱

这是

的快捷方式
ODDEVEN temp = new ODDEVEN();
IFive obj1 = temp;

这是有效的,因为ODDEVEN实现了IFive,因此它是可分配给该接口引用的。