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

    一、抽象类:abstract
    它就是为了被继承而出现的
    普通的类中所有的方法都变成虚方法,没有人用最基础的方法,全部都需要重写,那么就不需要那么费劲把普通类中的方法主体都写完,而是,直接定义成抽象类,并且都写成抽象方法。
    只声明方法的名称和返回类型,具体方法主体是什么,继承过去以后自己去实现。
    抽象方法一定是在抽象类中
    有抽象方法的类,一定是抽象类
    抽象类中不一定只有抽象方法
    二、接口:interface“干爹”
    就是让类更加完善
    都是抽象方法,不能有一点实在东西,全部内容都需要在子类中进行实现

    program   类

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace 抽象类_接口
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Ren r = new Ren();//划红线,抽象类是无法创建出来的,无法实例化
    
                NanRen n = new NanRen();
                Console.WriteLine(n.ChiFan());
    
    
                Console.WriteLine(n.ShuoHua());//在抽象类中也可以下普通方法,抽象类不能实例化,所以要通过子类运用
    
                Console.ReadLine();
            }
        }
    }

    ren   类

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace 抽象类_接口
    {
        public abstract class Ren//abstract抽象的意思
        {
            //抽象类
            public abstract string ChiFan();
    
            public abstract string ShuiJiao();
    
            public string ShuoHua()//在抽象类中也可以下普通方法,抽象类不能实例化,所以要通过子类运用
            {
                return "我能说话!";
            }
    
    
            //接口,让类更加完善
    
        }
    }

    nanren   类

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace 抽象类_接口
    {
        public class NanRen:Ren,gongzuo,yule   //要实现接口中的所有内容,要在主体部分全部打出来,要不然程序不能运行
        {
            public override string ChiFan()
            {
                return "大口吃饭!";
            }
    
            public override string ShuiJiao()
            {
                return "趴着睡觉!";
            }
    
            public string youxi()
            {
                return "1V5";
            }
    
            public string paobu()
            {
                return "12.88";
            }
    
            public string jineng()
            {
                return "打代码!";
            }
    
            public string didian()
            {
                return "汉企";
            }
    
        }
    }

    nvren   类

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace 抽象类_接口
    {
        public class NvRen:Ren 
        {
            public override string ChiFan()
            {
                return "小口吃饭!";
            }
    
            public override string ShuiJiao()
            {
                return "躺着睡觉!";
            }
    
        }
    }

    gongzuo   类

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace 抽象类_接口
    {
        public interface gongzuo//interface是接口的定义关键字
        {
            string jineng();
            
            string didian();
    
            //public string shijian()//接口就是用来被继承的,里面不能有public普通方法,程序也不会运行
            //{
            //    return "10年";
            //}
    
        }
    }

    yule   类

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace 抽象类_接口
    {
        public interface yule
        {
            string youxi();
    
            string paobu();
            
        }
    }
  • 相关阅读:
    Silverlight Tips(2)
    Sl4程序部署至IIS7
    Silverlight Tips(1)
    Silverlight中使用MVVM(5):Command II
    Linq操作之Except,Distinct,Left Join
    Ubuntu搭建Django+Flup+Nginx环境
    ASP.NET 4.0 与 Entity Framework 4第四篇Entity Framework在三层架构中的使用
    玩转博客园的5个小技巧
    Linux下安装Django1.2和MysqlPython
    Linux下如何给Subversion和Mercurial设置HTTP代理
  • 原文地址:https://www.cnblogs.com/juyangchao12/p/5859569.html
Copyright © 2011-2022 走看看