2).实例方法: 相反,实例方法就是方法前面不加关键字static,直接通过new运算符,实例化一个对象后,通过创建的对象来点出来,实例方法;而且,它是不能通过类名字点出来实例方法的。 下面的代码演示实例方法的定义和调用:
是重载的如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _001基础
{
class Program
{
static void Main(string[] args)
{
Animal horse = new Horse();
horse.Voice();
Animal sheep = new Sheep();
//相同类型的对象调用相同的方法表现出不同的行为
sheep.Voice();
Console.ReadKey();
}
}
//动物父类
public class Animal
{
//几乎所有的动物都具有发出声音的能力
//但是对于动物的子类来说,每个子类发出的声音都是不一样的
public virtual void Voice()
{
Console.WriteLine("动物开始发出声音了");
}
}
//马(子类),子类应该重写父类中的方法,以实现自己特有的行为
public class Horse : Animal
{
//通过override关键字来重写父类中方法
public override void Voice()
{
//调用父类中的方法
base.Voice();
Console.WriteLine("马发出嘶嘶。。。。嘶嘶。。。的声音");
}
}
//羊(子类)
public class Sheep : Animal
{
public override void Voice()
{
base.Voice();
Console.WriteLine("羊发出咩。。。咩。。。。的声音");
}
}
}
结果:
public class Horse : Animal
{
//通过override关键字来重写父类中方法
public sealed override void Voice()
{
//调用父类中的方法
base.Voice();
Console.WriteLine("马发出嘶嘶。。。。嘶嘶。。。的声音");
}
}
此时如果再有类继承这个“马”类,就不能继承该vocice方法了