类 的典型代码==============================
包括 属性及其判断赋值 方法 构造函数及其重载
namespace 类的属性和方法
{
public class Car
{
private int _speed;
private string _name;
public int Speed //属性的封装,判断
{
set {
if (value == 20)
{
this._speed = value;
}
else
{
this._speed = 50;
}
}
get{return this._speed;}
}
public string Name
{
set { this._name=value;}
get{return this._name;}
}
//显式定义默认构造函数
public Car(){}
//重载的带有参数的构造函数
public Car(string name,int speed)
{
this._name=name;
this._speed=speed;
}
public void ShowState()
{
Console.WriteLine("Car {0} is going {1} MPH", this._name,this. _speed);
}
}
class Program
{
static void Main(string[] args)
{
Car car1= new Car("胡章诚",19);
car1.Speed = 19;
Console.WriteLine("车名是{0},时速{1}", car1.Name, car1.Speed);
car1.ShowState();
Console.ReadKey();
}
}
}
一般类的继承=============================
1、类的继承——子类构造函数
概述:子类默认情况下会调用父类的的无参数构造函数
如果父类写了有参数的构造函数,子类未调用父类的有参数的构造函数,则需要显示的写出父类的无参数构造函
namespace 类的继承_子类构造函数
{
class Program
{
//3、 定义父亲类Father(姓firstName,财产wealth,血型blood),儿子Son类(玩游戏PlayGame),女儿Daughter类(跳舞Dance),
// 调用父类构造函数给子类字段赋值。
static void Main(string[] args)
{
Son son = new Son("Green", 20000, "O", "Good"); //实例化一个儿子的对象
Console.WriteLine(son.firstName);
son.PlayGame("lol"); //调用儿子的方法
Console.ReadKey();
}
}
class Father
{
public string firstName;
public int wealth;
public string blood;
public Father() { } //如果子类写了一个造函数,此造函数没有调用父类带参数的构造函数,此时就要显示的写出父类的无参数构造函数
包括 属性及其判断赋值 方法 构造函数及其重载
namespace 类的属性和方法
{
public class Car
{
private int _speed;
private string _name;
public int Speed //属性的封装,判断
{
set {
if (value == 20)
{
this._speed = value;
}
else
{
this._speed = 50;
}
}
get{return this._speed;}
}
public string Name
{
set { this._name=value;}
get{return this._name;}
}
//显式定义默认构造函数
public Car(){}
//重载的带有参数的构造函数
public Car(string name,int speed)
{
this._name=name;
this._speed=speed;
}
public void ShowState()
{
Console.WriteLine("Car {0} is going {1} MPH", this._name,this. _speed);
}
}
class Program
{
static void Main(string[] args)
{
Car car1= new Car("胡章诚",19);
car1.Speed = 19;
Console.WriteLine("车名是{0},时速{1}", car1.Name, car1.Speed);
car1.ShowState();
Console.ReadKey();
}
}
}
一般类的继承=============================
1、类的继承——子类构造函数
概述:子类默认情况下会调用父类的的无参数构造函数
如果父类写了有参数的构造函数,子类未调用父类的有参数的构造函数,则需要显示的写出父类的无参数构造函
namespace 类的继承_子类构造函数
{
class Program
{
//3、 定义父亲类Father(姓firstName,财产wealth,血型blood),儿子Son类(玩游戏PlayGame),女儿Daughter类(跳舞Dance),
// 调用父类构造函数给子类字段赋值。
static void Main(string[] args)
{
Son son = new Son("Green", 20000, "O", "Good"); //实例化一个儿子的对象
Console.WriteLine(son.firstName);
son.PlayGame("lol"); //调用儿子的方法
Console.ReadKey();
}
}
class Father
{
public string firstName;
public int wealth;
public string blood;
public Father() { } //如果子类写了一个造函数,此造函数没有调用父类带参数的构造函数,此时就要显示的写出父类的无参数构造函数
public Father(string f, int w, string b) //定于父类带参数的构造函数
{
this.firstName = f;
this.wealth = w;
this.blood = b;
}
}
class Son : Father
{
public string health; //自己写的一个字段
public void PlayGame(string Game) //将儿子玩游戏写成一个方法
{
Console.WriteLine("我玩{0},哈哈哈哈哈;", Game);
}
public Son(string f, int w, string b, string h)
: base(f, w, b) //利用base调用父类的构造函数
{
this.firstName = f;
this.wealth = w;
this.blood = b;
this.health = h;
}
}
class Daughter : Father
{
public int age; //自己写的一个字段
public void Dance() //将女儿跳舞写成一个方法
{
Console.WriteLine("我跳拉丁,呵呵");
}
public Daughter(string f, int w, string b, int a)
: base(f, w, b) //利用base调用父类的构造函数
{
this.firstName = f;
this.wealth = w;
this.blood = b;
this.age = a;
}
}
}
。。。。。。。。。。。。。。。。。。。。。。。。。
2、类的继承——用new关键字覆盖产生新方法
namespace 类的继承
{
class Program
{
static void Main(string[] args)
{
OtherClass oc = new OtherClass();
oc.Method1(oc.Field1);
Console.ReadKey();
}
class SomeClass
{
public string Field1 = "base class field1";
public void Method1(string value)
{
Console.WriteLine("Base class -- Method1:{0}",value);
}
}
class OtherClass:SomeClass
{
new public string Field1 = "OtherClass Field1"; //掩盖旧成员
new public void Method1(string value) //掩盖旧成员
{
Console.WriteLine("OtherClass.Method:{0}",value);
Console.WriteLine(base.Field1); //访问基类成员
}
}
}
}
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
3、类的继承——虚方法、抽象方法的重写产生新方法
namespace 虚方法和复写方法
{
class Program
{
static void Main(string[] args)
{
MyDrivedClass drived = new MyDrivedClass();
MyBaseClass mybs = (MyBaseClass)drived;
drived.Print();
mybs.Print();
Console.ReadKey();
}
}
class MyBaseClass
{
virtual public void Print()
{
Console.WriteLine("this is base class");
}
}
class MyDrivedClass:MyBaseClass
{
override public void Print()
{
Console.WriteLine("this is drived class");
}
}
}