C#学习教程五
继承与多态
继承性:即一个类可以派生出新的类而且新的类能够继承基类的成员。
多态性:是指相同的操作方法可作用于多种类型的对象,并获得不同的结果。
隐藏方法:在子类中可以使用与基类的成员相同的名称来声明成员,在这种情形中,在子类不需要访问基类的同名成员,这叫做子类成员隐藏。
实例代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Hello_World
{
public class Conversion
{
public static void Main(string[] args)
{
Derived.G();
More.H();
}
class Base {
public static void F() {
Console.WriteLine("Base 类的F()方法");
}
}
//C#继承
class Derived : Base {
//隐藏方法
//隐藏Base类的F()方法
new private static void F() {
Console.WriteLine("Derived类的F()方法");
}
public static void G() {
F();//调用 Derived类的F()方法,隐藏Base类的F()方法
}
}
class More : Derived {
public static void H() {
F();//调用Base类的F()方法
}
}
}
}
效果截图:
虚方法和重写方法
虚方法定义: 如果一个实例方法声明中含有virtual修饰符,则称该方法为虚方法。若其中没有virtual修饰符,则称该方法为非虚方法。
irtual修饰符不能与static 、abstrace或override修饰符同时使用。
重写方法定义:如果一个实例方法声明中含有override修饰符,则称该方法为重写方法。
override修饰符不能与new 、static、或virtual修饰符同时使用。重写方法只能用于重写基类的虚方法。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Hello_World
{
public class Conversion
{
public static void Main(string[] args)
{
Base a=new Base();
Derived b = new Derived();
//多态
Base c = b;
a.F();
b.F();
c.F();
}
//Base--------- 虚方法
class Base {
public virtual void F() {
Console.WriteLine("Base 虚方法");
}
}
//C#继承
class Derived : Base {
//重写方法
public override void F() {
Console.WriteLine("Derived类重写Base虚方法");
}
}
}
}
效果截图:
密封类和密封方法
如果一个类已经没有再继承的必要,或者我们不希望自己编写的类被继承,以避免在理解和使用上的问题,可以将类声明为密封类(sealed Class)
密封类的主要作用:用于防止意外派生。
在非密封类中,如果要防止一个实例成员在子类中被重写,可以将该成员变量声明为密封成员方法(密封还可以包含:密封方法、密封属性、密封索引器、密封事件)
sealed 修饰符总是和override修饰符同时使用。使用sealed修饰符可以防止派生类进一步重写该方法。sealed修饰符不能与abstract修饰符同时使用。
静态类 :静态类的主要特征是不能被实例化,也不能派生子类。
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。