首页 > 代码库 > 07抽象类特点

07抽象类特点

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace _07抽象类特点{    class Program    {        static void Main(string[] args)        {            //1.抽象类、抽象成员必须标记为abstract,不能有实现,连大括号也不能有。            //2.抽象成员必须在抽象类中。            //3.抽象类不能被实例化,实例化后也没有用。            //4.子类继承抽象类后,必须把父类中的抽象abstract成员都重写override。除非子类也是抽象类。            //5.抽象成员访问修饰符不能是private            //6.抽象类中可以包含实例成员。实例成员可以不被子类实现。            //7.抽象类是有构造函数的,虽然不能被实例化。            //8.如果父类抽象方法有参数,子类override重写时要传入对应参数,有返回值也类似有返回值。            //父类方法有默认实现,父类需要被实例化时,可以考虑将父类定义为普通类,用虚方法实现多态。            //父类没有默认实现,也不需要实例化,则将父类定义为抽象类。            Student s = new Student();            s.Say();            s.Test("andu");        }    }    abstract class Person    {        public abstract void Say();        public abstract void Test(string name);    }    class Student : Person    {        public override void Say()        {            Console.WriteLine("呵呵");        }        public override void Test(string name)        {            Console.WriteLine("你好啊,{0}",name);        }    }    abstract class Teacher : Person    {    }}

 

07抽象类特点