C#抽象類
抽象類是C#語言中的一個重要的概念,抽象類不允許被例項化,希望以它為基類的所有派生類具有共同的成員和資料成員。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//抽象類
namespace chap4_5
{
abstract class Shape
{
public string Id { get; set; }
public abstract double Area { get; }
public override string ToString()
{
return Id + string.Format("{0,10:F2}",Area);
}
public Shape(string id)
{
Id=id;
}
}
class Square : Shape {
private int m_side;
public Square(int side, string id)
: base(id)
{
m_side = side;
}
public override double Area
{
get {
return m_side * m_side;
}
}
}
class Circle : Shape {
private int radius;
public Circle(int radius, string id)
: base(id)
{
this.radius = radius;
}
public override double Area
{
get { return radius * radius * Math.PI; }
}
}
class Rectangle : Shape {
private int a;
private int b;
public Rectangle(int a, int b, string id)
: base(id)
{
this.a = a;
this.b = b;
}
public override double Area
{
get {
return a * b;
}
}
}
class Program
{
static void Main(string[] args)
{
Shape[] shapes ={
new Square(5,"sp01") ,
new Rectangle(2,3,"sp02"),
new Circle(2,"sp03")
};
foreach (Shape s in shapes)
{
Console.WriteLine(s.ToString());
}
Console.ReadLine();
}
}
}
相關文章
- c#抽象類的定義C#抽象
- 抽象方法和抽象類抽象
- 抽象類抽象
- PHP 抽象類繼承抽象類時的注意點PHP 抽象類繼承抽象類時的注意點PHP抽象繼承
- Python抽象類Python抽象
- Java 抽象類Java抽象
- 14、抽象類抽象
- 走進C# abstract,瞭解抽象類與介面的異同C#抽象
- C#介面、抽象類、普通類和繼承(子類與父類)都有其特定的用途和場景C#抽象繼承
- TypeScript abstract 抽象類TypeScript抽象
- 抽象類VS介面抽象
- 抽象類與介面抽象
- 33_抽象類抽象
- 8 python 抽象類Python抽象
- 21-抽象類抽象
- 抽象類和介面抽象
- 介面的行為抽象和抽象類的行為抽象抽象
- 淺談Java抽象類Java抽象
- Java的抽象類 & 介面Java抽象
- 多型和抽象類多型抽象
- 抽象類 & 介面比較抽象
- Python抽象基類abcPython抽象
- 介面和抽象類 (abstract)抽象
- Java —— 流的抽象基類Java抽象
- JAVA物件導向--抽象類Java物件抽象
- C++ 抽象類快速使用C++抽象
- 抽象類及介面詳解抽象
- java中抽象類和介面Java抽象
- 介面和抽象類詳解抽象
- Java 的抽象類, 介面以及內部類Java抽象
- 介面、抽象類、普通類之間的關係抽象
- Java總結-抽象類與介面Java抽象
- Java基礎-抽象類和介面Java抽象
- 大資料學習:抽象類大資料抽象
- Dart - 抽象類的例項化Dart抽象
- java中的抽象類與介面Java抽象
- Java抽象類和介面 小白版Java抽象
- 介面和抽象類的區別抽象
- Java之繼承和抽象類Java繼承抽象