类的继承

继承的概念与使用

主要讲解父类与子类的关系:

例:定义一个父类为Mammal,子类为Horse、whale,来证明父类对象可以引用子类对象并且父类引用只能调用子类继承父类的方法,父类引用不能调用子类独有的方法

 

using system;
using system.collectios.generic;
using system.ling;
using system.text;

namespace inheriencedemo
{
class program
   {
     //Mammal的有关
     Mammal mamal=new Mammal("mm");
     mamal.Bresth();
     mamal.SuckleYoung();

     //Horse的有关
     Horse horse=new Horse("horse");
     horse.Trot();
     horse.Breath();
     horse.SuckleYoung();
     horse.Talk();
    
    

    //类的赋值
    //父类可以引用子类对象
    //父类引用只能调用子类继承父类的方法,父类引用不能调用子类独有的方法
     Mammal newMammal=new Horse("Bilu");
     newMammal.SuckleYoung();
  
     newMammal.Breath();
     string name=newMammal.getName();
     console.writeline("newMammal的名字为;"+name);
  
     try
      {
        //子类引用不能直接赋值父类对象,除非将父类对象进行强制转换
         Horse littleHorse=(Horse)new Mammal("neddy");
          littleHorse.Breath();
          littleHorse.SuckleYoung();
          littleHourse.getName();
          littleHorse.Tort();
       }
      catch(Exception ex)
       {
        console.writeline(ex.Massege);
        }
        console.readkey();
   }
 }
}

 

 

Horse的内容
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace InherienceDemo
{
   class Horse:Mammal
    {
     public Horse(string name):base(name)
      { 
       }
      new public void Talk()
       { 
          console.writeline("horse is talking");
        }
       public override void Breath()
         {
           console.writeline("马正在呼吸。。。");
         }
       public void Trot()
         {
           console.writeline(getName+"is troting");//name是继承父类Mammal中的public字段而来的
         }
    }

}

 


Mammal的有关内容

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace InherienceDemo
{
   class Mammal
    {
     private string name;
    
     public Mammal(string mammalName)
     {
       name=mammalName;
      }
      public void Talk()
      {
        console.writeline("mammal talking");
        }

      public sting getName()
       {
         return name;
        }
      public virtual void Breath()
       {
         console.writeline(name+"is breathing...");
       }
       public void SuckleYoung()
        {
          console.writeline(name+"is SuckleYoung...");
         }
     }
}

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值