zoukankan      html  css  js  c++  java
  • 抽象类和接口

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

  • 相关阅读:
    10 shell test命令
    9 shell 退出状态
    8 shell if else
    7 shell 数学运算
    6-x3 declare和typeset命令:设置变量属性
    6-x1 read命令:从键盘读取数据
    Bootstrap 有一个 class 属性叫做 well,它的作用是为设定的列创造出一种视觉上的深度感
    form-control给input添加这个class类后就会使用bootstrap自带的input框
    bootstrap文字居中!
    img-responsive class图片响应式
  • 原文地址:https://www.cnblogs.com/Tianxf815/p/8807196.html
Copyright © 2011-2022 走看看