Add constructors to base class
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());
}
}
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
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();
}
}
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
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);
}
}
X = 15
Define base class another cs file
//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();
}
}
}
Pass a derived class reference to a base class reference.
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());
}
}
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