• 抽象类和接口


    namespace OODemo
    {
        class Program
        {
            static void Main(string[] args)
            {
                //接口类型的变量,要以实现了该接口的类的对象赋值,以哪个接口声明的变量,只能调用本接口上声明的成员。
                IWeapon t = new Tank();
                t.Fire();
                t.Play();
                //不能调用IWheicle上定义的成员
                //t.Run();
    
                IWheicle r = new Tank();
                r.Run();
                r.Play();
                //这个不能调用
                //r.Fire();
            }
        }
    }
    
    namespace OODemo
    {
        //接口是纯抽像类,不能有任何实例成员,接口的成员是方法的声明
        public interface IWeapon
        {
            //接口成员天生就是public,所以加public关键字就会报错
            void Fire();
            void Play();
        }
    
        public interface IWheicle
        {
            void Run();
            void Play();
        }
        //实现接口的类必须实现接口成员
        public class Gun : IWeapon
        {
            public void Fire()
            {
                throw new NotImplementedException();
            }
    
            public void Play()
            {
                throw new NotImplementedException();
            }
        }
    
        public class Sowrd : IWeapon
        {
            public void Fire()
            {
                throw new NotImplementedException();
            }
    
            public void Play()
            {
                throw new NotImplementedException();
            }
        }
    
        public class Tank : IWeapon, IWheicle
        {
            public void Fire()
            {
                Console.WriteLine("亚瑟,程咬金");
            }
    //对于两个接口都定义了的成员,要显式的实现就是加接口名前缀(接口点出来方法名来)。 void IWeapon.Play() { Console.WriteLine("鸣礼炮"); } public void Run() { Console.WriteLine("穿山越岭"); } void IWheicle.Play() { Console.WriteLine("脚踏车"); } } }

    接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可

    继承实体类(concrete class)?

    答:接口可以继承接口。抽象类可以实现(implements)接口,抽象类可以继承实体类,

    但前提是实体类必须有明确的构造函数。

    1.接口可以实现多态,能降低类与类之间的耦合度,接口和抽象类一样具有稳定性不能轻易改变。

    2.接口是纯抽像类,不能有任何实例成员,接口的成员是方法的声明,
    实现接口的类必须实现接口成员,接口成员天生就是public所以加public关键字就会报错。

    3.接口类型的变量,要以实现了这个接口的类的对象赋值,只能调用本接口上声明的成员,
    对于两个接口都定义了的成员,要显式的实现就是接口点出来方法名来。

  • 相关阅读:
    转载 从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法
    TYVJ P1081 最近距离 Label:这不是分治!!!
    TYVJ P1086 Elevator Label:dp
    数字图像处理的三个层次
    栅格化是什么意思?
    图像基本知识
    修改了天空盒子但是点play还是没变原因
    地形编辑
    Bmp8位图像亮度如何调整?
    bmp图像作业笔记
  • 原文地址:https://www.cnblogs.com/Tianxf815/p/8807196.html
Copyright © 2020-2023  润新知