继承的概念与使用
主要讲解父类与子类的关系:
例:定义一个父类为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...");
}
}
}