前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C#进阶学习--抽象方法(abstract)

C#进阶学习--抽象方法(abstract)

原创
作者头像
腾云大使
修改2022-01-13 11:12:41
3850
修改2022-01-13 11:12:41
举报
文章被收录于专栏:用户9161392的专栏

一.定义

抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象
定义关键字:abstract
重写关键字:override

二.抽象类特点

1.抽象方法一定要写在抽象类中,
2.抽象方法没有方法体
3.抽象类可以包含非抽象的方法,如普通方法,虚方法等
4.继承的子类如果没实现父类中所有的抽象方法,那么这个子类也必须是抽象类
5.抽象类不能实例化,且不能被密封(即不可使用sealed修饰),但仍然可以具有构造方法

三.抽象类与接口的异同

相同点

1.都可以被继承
2. 都不能被实例化
3.都可以包含方法声明
4.子类必须实现未实现的方法

不同点

1.抽象类只能单一继承,接口可以实现多继承
2.抽象类中可以有普通方法,虚方法等,接口只能写规范,不可实现
3.抽象基类可以定义字段、属性、方法实现。接口只能定义属性、索引器、事件、和方法声明,不能包含字段。

四.实例

代码语言:C#
复制
    public abstract class Person
    {
        public string Name { get; set; }
        public int age { set; get; }
        public void SayHello()//普通方法
        {
            Console.WriteLine("我是" + this.Name + ",我的年龄是" + this.age);
        }
        public virtual int getAge()//虚方法
        {
            return this.age;
        }
        public abstract string getName();
    }

 public interface IAction
    {
        void Run();
        string Eat(string food);
    }

 public class Student : Person, IAction
    {
        public override string getName()
        {
            return "学生姓名为" + this.Name;
        }
        public string Eat(string food)
        {
            return "学生在吃" + food;
        }
        public void Run()
        {
            Console.WriteLine("学生在跑");
        }
    }

至此,抽象方法的总结结束......

最后,其实所有的数据测试可以在云服务器进行,大家可以看看腾讯云的相关服务,买来作为测试数据的服务器非常不错,最低只要38一年

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一.定义
  • 二.抽象类特点
  • 三.抽象类与接口的异同
    • 相同点
      • 不同点
      • 四.实例
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档