Csharp/CSharp Tutorial/Class/Base Class — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Текущая версия на 15:16, 26 мая 2010
Содержание
Add constructors to base class
<source lang="csharp">using System;
class Shape {
double pri_width; // private double pri_height; // private public Shape(double w, double h) { width = w; height = h; } // properties for width and height. public double width { get { return pri_width; } set { pri_width = value; } } public double height { get { return pri_height; } set { pri_height = value; } } public void showDim() { Console.WriteLine("Width and height are " + width + " and " + height); }
}
class Triangle : Shape {
string style; // private public Triangle(string s, double w, double h) : base(w, h) { style = s; } // Return area of triangle. public double area() { return width * height / 2; } // Display a triangle"s style. public void showStyle() { Console.WriteLine("Triangle is " + style); }
}
class MainClass {
public static void Main() { Triangle t1 = new Triangle("isosceles", 4.0, 4.0); Triangle t2 = new Triangle("right", 8.0, 12.0); Console.WriteLine("Info for t1: "); t1.showStyle(); t1.showDim(); Console.WriteLine("Area is " + t1.area()); Console.WriteLine(); Console.WriteLine("Info for t2: "); t2.showStyle(); t2.showDim(); Console.WriteLine("Area is " + t2.area()); }
}</source>
Info for t1: Triangle is isosceles Width and height are 4 and 4 Area is 8 Info for t2: Triangle is right Width and height are 8 and 12 Area is 48
Add more constructors to base class
<source lang="csharp">using System;
class Shape {
double pri_width; // private double pri_height; // private public Shape() { width = height = 0.0; } // Constructor for Shape. public Shape(double w, double h) { width = w; height = h; } // Construct object with equal width and height. public Shape(double x) { width = height = x; } // Properties for width and height. public double width { get { return pri_width; } set { pri_width = value; } } public double height { get { return pri_height; } set { pri_height = value; } } public void showDim() { Console.WriteLine("Width and height are " + width + " and " + height); }
}
// A derived class of Shape for triangles. class Triangle : Shape {
string style; // private /* A default constructor. This automatically invokes the default constructor of Shape. */ public Triangle() { style = "null"; } // Constructor that takes three arguments. public Triangle(string s, double w, double h) : base(w, h) { style = s; } // Construct an isosceles triangle. public Triangle(double x) : base(x) { style = "isosceles"; } // Return area of triangle. public double area() { return width * height / 2; } // Display a triangle"s style. public void showStyle() { Console.WriteLine("Triangle is " + style); }
}
class MainClass {
public static void Main() { Triangle t1 = new Triangle(); Triangle t2 = new Triangle("right", 8.0, 12.0); Triangle t3 = new Triangle(4.0); t1 = t2; Console.WriteLine("Info for t1: "); t1.showStyle(); t1.showDim(); Console.WriteLine("Area is " + t1.area()); Console.WriteLine(); Console.WriteLine("Info for t2: "); t2.showStyle(); t2.showDim(); Console.WriteLine("Area is " + t2.area()); Console.WriteLine(); Console.WriteLine("Info for t3: "); t3.showStyle(); t3.showDim(); Console.WriteLine("Area is " + t3.area()); Console.WriteLine(); }
}</source>
Info for t1: Triangle is right Width and height are 8 and 12 Area is 48 Info for t2: Triangle is right Width and height are 8 and 12 Area is 48 Info for t3: Triangle is isosceles Width and height are 4 and 4 Area is 8
Call constructor in base class
<source lang="csharp">using System; public class BaseClass {
public BaseClass(int x) { this.x = x; } public int X { get { return(x); } } int x;
} public class Derived: BaseClass {
public Derived(int x): base(x) { }
} class MainClass {
public static void Main() { Derived d = new Derived(15); Console.WriteLine("X = {0}", d.X); }
}</source>
X = 15
Define base class another cs file
<source lang="csharp">//File: base.cs using System;
namespace BaseClassNS {
public class MyBaseClass { public void PrintMe() { Console.WriteLine("I am MyBaseClass"); } }
} ////////////////////////////////////// //MainClass.cs using System; using BaseClassNS; namespace UsesBaseClass {
class DerivedClass : MyBaseClass { } class MainClass { static void Main() { DerivedClass mdc = new DerivedClass(); mdc.PrintMe(); } }
}</source>
Pass a derived class reference to a base class reference.
<source lang="csharp">using System;
class Shape {
double pri_width; // private double pri_height; // private public Shape() { width = height = 0.0; } public Shape(double w, double h) { width = w; height = h; } public Shape(double x) { width = height = x; } public Shape(Shape ob) { width = ob.width; height = ob.height; } public double width { get { return pri_width; } set { pri_width = value; } } public double height { get { return pri_height; } set { pri_height = value; } } public void showDim() { Console.WriteLine("Width and height are " + width + " and " + height); }
}
class Triangle : Shape {
string style; // private // A default constructor. public Triangle() { style = "null"; } // Constructor for Triangle. public Triangle(string s, double w, double h) : base(w, h) { style = s; } // Construct an isosceles triangle. public Triangle(double x) : base(x) { style = "isosceles"; } // Construct an object from an object. public Triangle(Triangle ob) : base(ob) { style = ob.style; } // Return area of triangle. public double area() { return width * height / 2; } // Display a triangle"s style. public void showStyle() { Console.WriteLine("Triangle is " + style); }
}
class MainClass {
public static void Main() { Triangle t1 = new Triangle("right", 8.0, 12.0); // make a copy of t1 Triangle t2 = new Triangle(t1); Console.WriteLine("Info for t1: "); t1.showStyle(); t1.showDim(); Console.WriteLine("Area is " + t1.area()); Console.WriteLine(); Console.WriteLine("Info for t2: "); t2.showStyle(); t2.showDim(); Console.WriteLine("Area is " + t2.area()); }
}</source>
Info for t1: Triangle is right Width and height are 8 and 12 Area is 48 Info for t2: Triangle is right Width and height are 8 and 12 Area is 48