类的继承用法

来源:互联网 发布:iframe跨域调用js方法 编辑:程序博客网 时间:2024/04/29 17:16
class parten
    {
        public parten()
        {
            Console.WriteLine("我是基类的无参构造器");
        }
        public parten(int i)
        {
            Console.WriteLine("我是基类的带一个整形参数的有参构造器");
        }
        public parten(string name)
        {

            Console.WriteLine("我是基类的带一个字符串参数的有参构造器");
        }
        public parten(int i, string name)
        {
            Console.WriteLine("我是基类的带两个参数的有参构造器");
        }
        public void Anomile(string name)
        {
            Console.WriteLine("这是动物在叫");
        }
    }
class children:parten
    {
        public children()
        {
            Console.WriteLine("我是派生类的无参构造器");
        }
        public children(int i)
        {
            Console.WriteLine("我是派生类的带一个整形参数的有参构造器");
        }
        public children(string name)
        {

            Console.WriteLine("我是派生类的带一个字符串参数的有参构造器");
        }
        public children(int i, string name)
        {
            Console.WriteLine("我是派生类的带两个参数的有参构造器");
        }

    }
class Program
    {
        static void Main(string[] args)
        {
            children ch = new children();
            ch.Anomile("ni");//很明显在基类中有个公有的方法,而继承类中是没有任何方法的,但是New
                                     //继承类的时候,虽然继承类没有任何方法但是生成继承类的对象后,当点的时候
                                     //它就会自动有基类中的公有方法。这就是面向对象的继承机制!!!
            Console.ReadKey();
        }
    }
说明:前面的是无重名的方法的时候,那么如果有时,对于基类已有定义的方法,打算重新定义自己的实现。

  Child类可以自己重新定义print( )方法的实现。Child的print( )方法覆盖了Parent中的 print 方法。结果是:除非经过特别指明,Parent类中的print方法不会被调用。

  3.在Child类的 print( ) 方法中,我们特别指明:调用的是Parent类中的 print( ) 方法。

  方法名前面为"base",一旦使用"base"关键字之后,你就可以访问基类的具有公有或者保护权限的成员。 Child类中的print( )方法的执行结果出现上面的第三行和第四行。
4:访问基类成员的另外一种方法是:通过显式类型转换。
  在Child类的Main( )方法中的最后一条语句就是这么做的。记住:派生类是其基类的特例。这个事实告诉我们:可以在派生类中进行数据类型的转换,使其成为基类的一个实例。上面代码的最后一行实际上执行了Parent类中的 print( )方法。即:((Parent)child).print( ) ;
5:有两个类一个是基类,一个是继承类,如果基类中有个方法比如说:是printer()方法当然这个    方法是公有的方法,如果在它的继承类中也有一个同名方法,如果这时候不作任何处理的话
   编译也能通过但是系统会发出一个没有隐藏基类同名方法的警告,如果想使系统健壮那么必须隐藏基类的同名方法,这时候用到New关键字,形式是:new public void print();这个New关键字一定是在Public关键字之前,这时候默认的是调用的是继承类中的这个同名方法,如果你想调用基类中同名的这个方法的时候,这时候必须(1):如果是个实例方法,必须先生成实例在加上实例名.方法名的形式去调用基类同名方法,形式://访问隐藏基类的 print():
                           Console.WriteLine(MyBase.print());
(2):如果是静态方法直接用基类名.方法名();即可!
特别注意的是:这种方式同样可以用在字段,属性和事件上!
原创粉丝点击