C#面象对象2

来源:互联网 发布:古风音乐制作软件 编辑:程序博客网 时间:2024/05/25 19:56
  
一、类的初始化。
       注意:
              类在初始化过程中,若没有给定字段的初始值,编译器将自动为每个字段赋于默认值。在方法内部定义的变量,若不初始化,编译器将提示错误。
       构造方法:
       作用:是对类的字段进行初始化。
       特征:与类同名,无返回值 。如下:
              class Person{
       //构造方法
public Person(){
}
}
       方法重载:指在同一个类中有多个同名方法,但方法的参数不同。
              特征:方法名称相同,但参数不同(参数的类型不同或参数的个数不同)。如下:
       class Class1
     {
         staticvoid Main(string[] args)
         {
         }
         publicvoid Print(){
              ...
         }
         publicvoid Print(string str){
              ...
         }
         publicvoid Print(int intTemp){
              ...
         }
         publicvoid Print(string str,int intTemp){
              ...
         }
         publicint Print (int intTemp,string str){
              ...
              return intTemp;
         }
}
              方法重载与方法的返回类型无关。构造方法也可以被重载。如下:
                   class Shape{
                  private string name;
                  public Shape(){
                  }
                  public Shape(string name){
                       this.name=name;
              }
         }
       析构方法:是当类在内存中回收时调用的一个方法
              它是为了消亡一个类。
它的声明:与构造方法的声明相同,只是在类名前加一个~符号。如下:
              class Person{
       //构造方法
public Person(){
}
//析构方法
~Person(){
       ……….
}
二、继承。
              继承是指 在现有类的基础上定义一个新的类(派生)。
              在JAVA中用关键字extends来实现继承。而在C#中用:符号。如下格式:
              class 子类类名 :父类类名{
       ……….
       我们应当注意:
              子类可以继承父类的所有内容(除了父类的构造方法),包括父类私有的内容,但父类中私有的内容子类不可以使用。
       子类中调用父类的构造方法:
              JAVA中在子类中调用父类的构造方法用super关键字。而在C#中我们如下方法来调用父类的构造方法:
       class Triangle:Shape{
         private string name;
         public Triangle(string name,int intTemp):base(intTemp){    //base在这里就代表一个父类的引用。
              this.name=name;
         }
base(参数列表) 中的参数列表,必须是在子类构造方法的参数列表中声明过的。
子类的构建次序:先构造一个父类对象,然后再构造子类对象特有的内容。
在子类的构造方法中若没有明确指定调用父类的哪个构造方法时,编译器自动调用父类中那个默认的构造方法。(若父类中没有找到默认的构造方法,那么编译器将会提示错误).
       方法隐藏:
              子类中的某个方法与父类的某个方法相同,即子类拥有一个和父类相同的方法,这叫做方法的隐藏。
              方法的隐藏,子类的方法要用到new 关键字。new放在修饰符之后,返回类型之前。如下:
       class Artist
     {
         ……..
         publicvoid Print()
         {
              Console.WriteLine("艺术家");
         }
        
     }
     class Poet:Artist
     {
         …………
         publicnew void Print()          //方法的隐藏,并非方法重写。
         {
              Console.WriteLine("诗人");
         }
     }
     方法重写:
         JAVA中的方法重写是在子类中有一个与父类中的方法同名的方法(返回类型相同,参数相同)叫方法重写。而在C#中这样是不行的。
         C#中的方法重写是:
         父类将要被重写的方法要用virtual或abstract来修饰。
         子类中的那个重名的方法前要用override来修饰。
              如下:
     class Artist
     {
         ………
         publicvirtual void Work()                //表示此方法为虚方法,将要被重写
         {
              Console.WriteLine("艺术家的工作");
         }
         …….
     }
     class Poet:Artist
     {
         ………
         publicoverride void Work()               //重写父类中的Work()方法。
         {
              Console.WriteLine("诗人的工作");
         }
         ………..
     }
原创粉丝点击