override是重写,是在子类与父类中,子类中方法的方法名,参数个数、类型都与父类中的完全一样,在子类中覆盖掉了父类的方法。 ![]() ![]() using System; class TestOverride { public class Employee { public string name; // Basepay is defined as protected, so that it may be // accessed only by this class and derrived classes. protected decimal basepay; // Constructor to set the name and basepay values. public Employee(string name, decimal basepay) { this.name = name; this.basepay = basepay; } // Declared virtual so it can be overridden. public virtual decimal CalculatePay() { return basepay; } } // Derive a new class from Employee. public class SalesEmployee : Employee { // New field that will affect the base pay. private decimal salesbonus; // The constructor calls the base-class version, and // initializes the salesbonus field. public SalesEmployee(string name, decimal basepay, decimal salesbonus) : base(name, basepay) { this.salesbonus = salesbonus; } // Override是重写,是在子类与父类中,子类中的方法的方法名,参数个数、类型都与父类中的完全一样,在子类中覆盖掉了父类的方法。 // Override the CalculatePay method // to take bonus into account. public override decimal CalculatePay() { return basepay + salesbonus; } } static void Main() { // Create some new employees. SalesEmployee employee1 = new SalesEmployee("Alice", 1000, 500); Employee employee2 = new Employee("Bob", 1200); Console.WriteLine("Employee4 " + employee1.name + " earned: " + employee1.CalculatePay()); Console.WriteLine("Employee4 " + employee2.name + " earned: " + employee2.CalculatePay()); } } /* Output: Employee4 Alice earned: 1500 Employee4 Bob earned: 1200 */ overload: ![]() ![]() using System; namespace Example07 { class Program { class BaseClass { public virtual void F() { Console.WriteLine("BaseClass.F"); } } class DeriveClass : BaseClass { public override void F() { base.F(); Console.WriteLine("DeriveClass.F"); } // 重载是有相同的方法名,但参数类型或参数个数不同。 public void Add(int Left, int Right) { Console.WriteLine("Add for Int: {0}", Left + Right); } public void Add(double Left, double Right) { Console.WriteLine("Add for int: {0}", Left + Right); } } static void Main(string[] args) { DeriveClass tmpObj = new DeriveClass(); tmpObj.F(); tmpObj.Add(1, 2); tmpObj.Add(1.1, 2.2); } } }
|
|
来自: 昵称10504424 > 《C#》