07抽象类特点

本文详细介绍了C#中抽象类的基本概念及其使用规范,包括抽象类的特点、抽象成员的定义方式、实例化的限制条件、子类重写的必要性等,并通过具体的代码示例展示了如何在实际开发中应用这些特性。
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
    {

    }

}

 

转载于:https://www.cnblogs.com/andu/p/6133417.html

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值