.Net学习笔记----2015-07-22(C#基础复习09,虚方法、抽象方法、接口复习)

1、关于虚方法的注意事项:

1)、父类中如果有方法需要让子类重写,则可以将该方法标记为virtual

2)、虚方法在父类中必须有实现,哪怕是空实现

3)、虚方法子类可以重写(override),也可以不重写

 

2、关于抽象方法的注意事项:

1)、需要用abstract关键字标记

2)、抽象方法不能有任何方法实现

3)、抽象成员必须包含在抽象类中

4)、由于抽象成员没有任何实现,所以子类必须将抽象成员重写。

 

3、抽象类的作用:抽象类的作用就是为了让子类继承

4、抽象类中可以包括抽象成员,可以包括有具体代码的成员

5、抽象方法不能用 static 修饰

 

6、接口

1)、接口中只能包含方法(属性、事件、索引器也都是方法)

2)、接口中的成员都不能有任何实现

3)、接口不能被实例化

4)、接口中的成员不能有任何访问修饰符。(默认为public)

5)、实现接口的子类必须将接口中的所有成员全都实现

6)、子类实现接口的方法时,不需要任何关键字,直接实现即可。

7)、接口存在的意义就是为了多态

    class Program
    {
        static void Main(string[] args)
        {
            //接口是什么?什么时候使用?接口的目的是什么?多态
            //鸟会飞,飞机也会飞,都会飞,但是没法把飞这个行为提取为父类,因为没有一个东西可以作为飞机和鸟的父类

            IFlyable fly = new MaQue();
            fly.Fly();

            Console.ReadKey();
        }
    }

    public interface IFlyable
    {
        void Fly();
    }

    public class Bird
    {

    }

    //public class QQ : Bird
    //{

    //}

    public class MaQue : Bird, IFlyable
    {
        /// <summary>
        /// 这个是子类自己的飞方法
        /// </summary>
        public void Fly()
        {
            Console.WriteLine("麻雀会飞");
        }
        /// <summary>
        /// 显式实现接口方法,解决方法重名问题
        /// </summary>
        void IFlyable.Fly()
        {
            Console.WriteLine("实现接口的飞方法");
        }
    }

    public class Plane : IFlyable
    {
        public void Fly()
        {
            Console.WriteLine("飞机也会飞");
        }
    }

 

你可能感兴趣的:(.net)