码迷,mamicode.com
首页 > 其他好文 > 详细

抽象类、接口

时间:2016-09-10 17:27:47      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:

一、抽象类: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();
        
    }
}

 

抽象类、接口

标签:

原文地址:http://www.cnblogs.com/juyangchao12/p/5859569.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!