Abstract Class Program 14 using System namespace Abstract
Abstract. Class. Program (1/4) using System; namespace Abstract. Class { /* * 示範抽象類別之應用 * skj 5/7/2007 */ class Program { static void Main(string[] args) { double a = 5. 0; Square sq = new Square(a); Console. Write. Line("正方形sq之面積為" + sq. Area()); 2
Abstract. Class. Program (2/4) Circle c = new Circle(a); Console. Write. Line("圓形c之面積為" + c. Area()); Console. Read. Line(); } } public abstract class Shape { private string shape; public Shape(string shape) { this. shape = shape; Console. Write. Line("建立" + shape); } abstract public double Area(); } 3
Abstract. Class. Program (3/4) public class Square : Shape { double a; public Square(double a) : base("正方形") { this. a = a; } public override double Area() { return a * a; } } 4
Abstract. Class. Program (4/4) public class Circle : Shape { double r; public Circle(double r) : base("圓形") { this. r = r; } public override double Area() { return Math. PI * r; } } } 5
Using. Interface. Program (1/4) using System; namespace Using. Interface { /* * 示範介面之應用 * 5/7/2007 */ class Program { static void Main(string[] args) { double a = 5. 0; Square sq = new Square(a); Console. Write. Line("正方形sq之面積為" + sq. Area()); 6
Using. Interface. Program (2/4) Circle c = new Circle(a); Console. Write. Line("圓形c之面積為" + c. Area()); Console. Read. Line(); } } interface Shape { double Area(); } 7
Using. Interface. Program (3/4) public class Square : Shape { double a; public Square(double a) { this. a = a; } public double Area() { return a * a; } } 8
Using. Interface. Program (4/4) public class Circle : Shape { double r; public Circle(double r) { this. r = r; } public double Area() { return Math. PI * r; } } } 9
Multi. Interface. Program (1/3) using System; namespace Multi. Interface { /* 示範多重介面之實作 * skj 5/8/2007 */ class Program { static void Main(string[] args) { Sea. Plane sp = new Sea. Plane(); sp. Sail(); sp. Fly(); Console. Read. Line(); } } 11
Multi. Interface. Program (2/3) interface Plane { void Fly(); } interface Ship { void Sail(); } 12
Multi. Interface. Program (3/3) public class Sea. Plane : Plane, Ship { public Sea. Plane() { Console. Write. Line("建立水上飛機"); } public void Sail() { Console. Write. Line("水上滑行"); } public void Fly() { Console. Write. Line("空中飛行"); } } } 13
Cast. Multi. Interfaces. Program (1/4) using System; namespace Cast. Multi. Interfaces { class Program { static void Main(string[] args) { double a = 5. 0; Square sq = new Square(a); Rhombus rhomb = sq as Rhombus; Console. Write. Line( "sq的面積以菱形公式計算得"+rhomb. Area() ); 14
Cast. Multi. Interfaces. Program (2/4) if( sq is Rectangle ) { Rectangle rec = (Rectangle) sq; Console. Write. Line( "sq的面積以矩形公式計算得"+rec. Area() ); } Console. Read. Line(); } } interface Rectangle { double Area(); } 15
Cast. Multi. Interfaces. Program (3/4) interface Rhombus { double Area(); } public class Square : Rectangle, Rhombus { private double a; private double d; public Square(double a) { this. a = a; d = Math. Sqrt(2. 0) * a; } 16
Cast. Multi. Interfaces. Program (4/4) double Rectangle. Area() { return a * a; } double Rhombus. Area() { return 0. 5 * d; } } } 17
- Slides: 17