C#方法重写向上转型(继承)

方法重载是指同一个类中的多个方法具有相同的名字,但这些方法具有不同的参数列表,即参数的数量或参数类型不能完全相同

方法重写是存在子父类之间的,子类定义的方法与父类中的方法具有相同的方法名字,相同的参数表和相同的返回类型 

(1)子类中不能重写父类中的final方法 

(2)子类中必须重写父类中的abstract方法 

(3)建立在继承的基础上,子类重写父类的方法

 

virtual:虚,所修饰的成员表示可以被重写

new:隐藏父类中的相同定义的成员

override:重写覆盖父类中相同定义的虚成员;

每个子类都只有一个直接继承的父类,可以拥有多个间接继承;


class q{}
class w:q{}

class x:w{}//x直属基类是w,间接继承q

Object是所有类的父类;所有类型默认都继承Object;

 

 

 * 向上转型:父类类型 变量=new 子类();

 * Human() stu =new Student();

 * stu.PlayGame(); //会调用子类重写的方法,打印 玩英雄联盟

class Human{
	public virtual void GoHome(){
           Console.WriteLine("回家");
	}
	public virtual void PlayGame(){
	   Console.WriteLine("玩游戏");
	}

}
class Student:Human{
	//隐藏父类的方法
	public new void GoHome(){
	
	}
	//重写覆盖
	public overide void PlayGame(){
           Console.WriteLine("玩英雄联盟");	
     }
}

 

 

 

 

 

你可能感兴趣的:(C#学习(面向对象))