using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using Xunit;

namespace InterfaceStudy.Test
{
    public class DemoTest
    {
        [Fact]
        public void Test()
        {
            IDemo demo = new DemoA();
            var result = demo.GetNumber();

            Assert.Equal(2,result);
        }

        [Fact]
        public void Test2()
        {
            IDemo demo = new DemoB();
            var result = demo.GetNumber();

            Assert.Equal(1,result);

            var demoB = new DemoB();
            var resultB = demoB.GetNumber();

            Assert.Equal(3, resultB);
        }
    }

    public interface IDemo
    {
        int GetNumber();
    }

    public class Demo : IDemo
    {
        int IDemo.GetNumber()
        {
            return 1;
        }
    }

    public class DemoA : Demo, IDemo
    {
        public int GetNumber()
        {
            return 3;
        }
    }

    public class DemoB : Demo
    {
        public int GetNumber()
        {
            return 3;
        }
    }
}