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

    继承:
    访问修饰符  class  类名 :类名
    
    一个类只能有一个父类(亲爹)
    
    父类  某个类继承自某个类
    子类  派生类   超类
    
    多态:
    类的多种形态
    
    父类存在虚方法   virtual
    子类重写         override
    
    访问修饰符:
    public      公共的,只要引用了命名空间就能用
                访问级别最高
    private     私有的,只能在类的内部进行访问
                访问级别最低
    
    internal    默认的,同一个命名空间下可以访问
                访问级别次最高
                
    protected    被保护的,类的内部及它的子类中才可以访问
                访问级别次最低
    
    -----------------------------------------------------------
    抽象类:abstract 
    就是用来当亲爹的,不能被实例化对象
    
    抽象方法只能存在于抽象类中
    抽象类中不一定只有抽象方法,还可以有普通方法(普通方法可以虚写)
    
    
    1.创建HuoZhe类
    namespace 抽象类和接口
    {
        public abstract class HuoZhe     // 写上;public abstract , abstract:摘要
        {
            写一个string类型的方法,吃饭方法
            public string ChiFan() {    //return "大口吃饭";    //  返回的内容   }
    
    
            将其修改为抽象方法:abstract
            public abstract string ChiFan();   // 相当于已经声明完了
    
    
    
            抽象类里不仅有抽象方法,还有普通方法
            public virtual string HuXi() {
                return "鼻子和嘴呼吸";
            }
            
        }
    }
    2.创建Ren类
    namespace 抽象类和接口
    {
        class Ren:HuoZhe,GongZuo,YuLe   要想活着,需要继承活着的方法,吃饭方法,冒号是抽象类,逗号是接口
        {
            抽象方法,必须要把继承的方法在这写出来,否则报错
            然后对这个抽象方法ChiFan进行重写
            public override string ChiFan()
            {
                throw new NotImplementedException();  抛出一个新的异常,如果不改,一调这个方法,会抛出一个新的异常
                return "用嘴吃饭";   要的是返回一个string类型,在做HuoZhe
            }
    
            生成解决方案不成功
            Ren不实现GongZuo里的GongZuo1()方法是有错的
            所以在这需要把它实现出来
            接口里public 不用写override,直接写string类型的GongZuo1
            public string GongZuo1() {
                return "";
            }
    
    
            生成解决方案不成功
            Ren不实现YuLe里的YuLe()方法也是有错的
            所以在这需要把它实现出来
            接口里public 不用写override,直接写string类型的YuLe1
            public string YuLe1() {
                return "听音乐";
            }
    
    
            生成成功
        }
    }
    3.创建男人类
    namespace 抽象类和接口
    {
        class NanRen : Ren      //继承人这个类
        {
            public override string ChiFan()
            {
                //return base.ChiFan();返回父级的ChiFan方法
                return "大口吃饭";
            }
        }
    }
    4.创建女人类
    namespace 抽象类和接口
    {
        class NvRen:Ren    //继承人这个类
        {
    
            public override string HuXi()
            {
                return "就爱用鼻子呼吸";
            }
    
        }
    }
    
    
    -------------------------------------------------------------
    
    
    
    
    接口:interface   干爹
    不能被实例化对象 
    
    接口中只能存在很抽象的方法
    string 方法名();
    
    接口中所有的内容都一定是public
    
    
    
    
    5.创建工作类
    namespace 抽象类和接口
    {
        interface GongZuo
        {
            //可以添加类的时候把class 改为 interface,也可以直接点击添加类,然后改成接口,也是.cs后缀
            //接口是很抽象的,抽象到不允许有私有的,都是公开的
            //连访问修饰符都不用写
            //直接写方法和返回类型
            string GongZuo1();   //这样就声明了方法
        }
    }
    6.创建娱乐类
    namespace 抽象类和接口
    {
        interface YuLe
        {
            string YuLe1();
        }
    }
    
    还有创建的Ren 类里的内容:
    
    生成解决方案不成功
            Ren不实现GongZuo里的GongZuo1()方法是有错的
            所以在这需要把它实现出来
            接口里public 不用写override,直接写string类型的GongZuo1
            public string GongZuo1() {
                return "";
            }
    
    
            生成解决方案不成功
            Ren不实现YuLe里的YuLe()方法也是有错的
            所以在这需要把它实现出来
            接口里public 不用写override,直接写string类型的YuLe1
            public string YuLe1() {
                return "听音乐";
            }
    
    
            生成成功

  • 相关阅读:
    chrome浏览器中安装以及使用Elasticsearch head 插件
    windows10 升级并安装配置 jmeter5.3
    linux下部署Elasticsearch6.8.1版本的集群
    【Rollo的Python之路】Python 爬虫系统学习 (八) logging模块的使用
    【Rollo的Python之路】Python 爬虫系统学习 (七) Scrapy初识
    【Rollo的Python之路】Python 爬虫系统学习 (六) Selenium 模拟登录
    【Rollo的Python之路】Python 爬虫系统学习 (五) Selenium
    【Rollo的Python之路】Python 爬虫系统学习 (四) XPath学习
    【Rollo的Python之路】Python 爬虫系统学习 (三)
    【Rollo的Python之路】Python sys argv[] 函数用法笔记
  • 原文地址:https://www.cnblogs.com/yunpeng521/p/7101277.html
Copyright © 2011-2022 走看看