C#入门10.5——抽象类与抽象方法声明
来源:互联网 发布:电脑桌面软件太多 编辑:程序博客网 时间:2024/06/06 02:44
抽象类与非抽象类
抽象类前有关键字abstract,没有则为非抽象类
声明格式
public abstract class Fly//抽象类要加关键字
{
public abstract void flys();//声明抽象方法不能有方法体
}
抽象类不能实例化,必须通过集成由派生类实现其抽象方法,因此不能用new,不能sealed
如果派生类没有实现所有的抽象方法,则该派生类也必须声明为抽象类
如果一个非抽象类从抽象类中派生,则其必须通过重载来实现所有继承而来的抽象成员
定义:方法前有abstract就被称为抽象方法,抽象方法不提供任何实际实现
public abstract class Class1 { public abstract void Method1();//抽象类与抽象方法声明中必须包含abstract,并且抽象方法不能有方法体。 //抽象类的声明就是为了实现派生或继承,所以我们不能将它同时标记为sealed public abstract void Method2(); public void Add(int a,int b)//抽象类中可以包含非抽象方法 { Console.WriteLine(a+b); } }
public abstract class Class2: Class1//如果派生类没有实现所有的抽象方法,则该派生类也必须声明为抽象类 { public override void Method1() { Console.WriteLine("这是抽象方法1"); } }
注意:抽象方法必须在抽象类中声明
不能使用static、private或virtual修饰符
方法不能有任何可执行程序,哪怕是方法体{}
重写抽象方法时采用override
实例1:Pow类定义了一个求幂对象的抽象概念。Pow类方法是抽象的,PowB类和PowC类是Pow的具体实现。
class Program { static void Main(string[] args) { PowB myPowB = new PowB(); myPowB.PowMethod(2,10); PowC myPowC = new PowC(); myPowC.PowMethod(2,10); Console.ReadKey(); } }
public abstract class Pow { public abstract void PowMethod(int x, int y); //abstract方法 没有自己的实现 //virtual方法 有自己的实现 //共同点:都可以通过override来实现对原有方法的重写 }
class PowB:Pow { public override void PowMethod(int x,int y) { int pow = 1; for(int i=1;i<=y;i++) { pow *= x; } Console.WriteLine("求幂的结果是" + pow); } }
class PowC : Pow { public override void PowMethod(int x, int y) { Console.WriteLine("求幂的结果是"+System.Math.Pow(x, y)); } }
0 0
- C#入门10.5——抽象类与抽象方法声明
- C# 抽象类与抽象方法
- C#抽象类、抽象方法
- 抽象类、抽象方法怎么声明
- C#抽象类与抽象方法(抽象类,抽象方法概念,使用)
- C# 抽象类与抽象方法的作用与实例
- C# 抽象类与抽象方法的作用与实例
- java基础——抽象类与抽象方法
- 抽象类与抽象方法
- 抽象类与抽象方法
- 抽象类与抽象方法
- 抽象类与抽象方法
- 抽象类与抽象方法
- 抽象类与抽象方法
- 抽象类与抽象方法
- 抽象类与抽象方法
- 抽象类与抽象方法
- 抽象类与抽象方法
- MFC 自绘ComboBox
- Noip2015提高组Day1 “神奇的幻方”题解
- 用 ThreadLocal 管理用户session
- NKOI 3748 玩具取名
- 迷宫问题解法汇总
- C#入门10.5——抽象类与抽象方法声明
- python
- switch off light
- 演讲如何克服紧张情绪
- 模拟退火算法
- css布局之div + span 以及盒模型
- MySql按日/周/月分组统计数据
- leetcode-Reverse Bits-190
- 面向对象_main方法的格式详细解释