1.封装:是为了隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的权限(定义)。
封装器:
private double a //ctrl+r,e 回车,回车 自动生成下面代码 public double A { get { return price; } set { price = value; } 两种封装器的差别在属性的名称上, } 如果名称首字母为小写,在封装器中则大写 如果名称首字母为大写,在封装器中则在首字母前加”_“。 或 private double A //ctrl+r,e 回车,回车 自动生成下面代码 public double _A { get {return price;} set{price = value;} }
2.继承:一个类只能继承一个普通类,但可以继承多个对象(接口、抽象类等)继承父类中所有非私有成员
单根性、传递性、安全性。
public class a
{
}
public class b:a,c //a为被继承的普通类,c为其他对象,如果有多个再用逗号分隔。
base:
继承父类的构造函数,一个子类中的构造函数只能出现一次base,需定义合适的构造函数才能
调用或在多个子类中的构造函数中调用。
public class fu{ publice cz(int _a,string _b) { this.a=_a; this.b=_b; } } public class zi : fu{ public cz(double _c) :base(_a,_b) { this.c=_c } }
3.重写:发生在继承关系之上,重写是重写父类中的虚方法或已被重写过的方法。
关键字: override | 关键字:overload
|
用法: | 重载,同一类中的方法名相同参数列表不同的的方法称为重载。
public class fu{ | publice virtual string a() //虚方法 | { } } public class zi{ public override string a() { //重写fu类中的a方法 } }
4.抽象类
abstract class a()
{
//不能被实例化
//只能让普通类实现方法
}
定义抽象方法:
public abstract void meth();
访问修饰符 定义抽象方法 返回值类型 方法名 注意没有大括号,即没有方法体(不用实现方法)。
抽象类可以被继承,如果被普通类继承则需要实现其未实现的方法,被抽象类继承不一定要实现未实现的方法。
抽象方法只能写在抽象类中,普通方法可以写在普通类和抽象类中。
public abstract class couxianglei //定义抽象类 { public abstract void fangfa(); //定义抽象方法 } public class jutilei : couxianglei { public override void fangfa() //继承抽象方法 { Console.WriteLine("实现了抽象方法"); } }