C#进阶学习2--抽象方法(abstract)
时间:2021-06-29 13:43:34
收藏:0
阅读:38
一.定义
抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象
定义关键字:abstract
重写关键字:override
二.抽象类特点
1.抽象方法一定要写在抽象类中,
2.抽象方法没有方法体
3.抽象类可以包含非抽象的方法,如普通方法,虚方法等
4.继承的子类如果没实现父类中所有的抽象方法,那么这个子类也必须是抽象类
5.抽象类不能实例化,且不能被密封(即不可使用sealed修饰),但仍然可以具有构造方法
三.抽象类与接口的异同
相同点
1.都可以被继承
2. 都不能被实例化
3.都可以包含方法声明
4.子类必须实现未实现的方法
不同点
1.抽象类只能单一继承,接口可以实现多继承
2.抽象类中可以有普通方法,虚方法等,接口只能写规范,不可实现
3.抽象基类可以定义字段、属性、方法实现。接口只能定义属性、索引器、事件、和方法声明,不能包含字段。
四.实例
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("学生在跑");
}
}
原文:https://www.cnblogs.com/zykj/p/14949288.html
评论(0)