码迷,mamicode.com
首页 > 其他好文 > 详细

201803280002

时间:2018-03-28 16:57:11      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:重写   对象   gen   cti   led   ace   splay   修饰符   read   

201803280002总结:

1.Sealed:密封的意思;由它修饰的类或方法将不能被继承或重写;

2.类中被Sealed修饰时,可防止被其它类继承。密封类不能同时又是抽象类,因为抽象类总是希望被继承的;

3.密封方法:防止在方法所在类的派生类中对该方法的重载。

4.不是类的每个成员方法都可以作为密封方法,要作为密封方法,必须对基类的虚方法进行重载,提供具体的实现方法。所在方法的声明中,Sealed修饰符

总是和override修饰符同时使用。

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;

namespace _20180328_0004_1 {     class Sealed     {         static void Main(string[] args)         {             Console.WriteLine("请输入电脑CPU的名称:");             string c=Console.ReadLine();             Computer cp = new Computer(c);   //创建电脑对象             Console.WriteLine("\n{0}所采用的CPU为{1}",cp.name,cp.cpu);             Phone no = new Phone();   //创建手机对象             no.display();            //调用重写后的密封方法display();             Console.ReadKey();         }     }     class Product     {         internal string name;         internal virtual void display()     //虚方法         {             Console.WriteLine("这是产品类的虚方法");         }     }     sealed class Computer : Product    //声明电脑类,继承于Product类     {         internal string cpu;         internal Computer(string c)         {             this.cpu = c;             this.name = "电脑";         }     }     //声明本来将导致错误,因为Computer类为密封类,无法被继承;     //class NoteBook : Computer     //{

    //}     class Phone:Product   //声明手机类,继承于Product类     {         internal sealed override void display()  //重新父类中的虚方法,并将此方法定为Sealed,不是任意一种方法都可以定为Sealed的,                                                                        {                                           //sealed经常且必须与override同时使用;                Console.WriteLine("\n 这是手机类的方法");         }     }     class Phone3G :Phone   //如何在Phone类中的重写的方法中没有添加Sealed,则继承Phone时,可以继续重写。     {                      //但若在Phone类中添加了Sealed后,并且Phone3G继承Phone时就不能直接重写display()方法了;         //声明此方法将导致错误,由于display方法在其父类Phone中为密封方法,所以无法再重写。         //internal override void display()         //{                     //}     } }

201803280002

标签:重写   对象   gen   cti   led   ace   splay   修饰符   read   

原文地址:https://www.cnblogs.com/carol-whsun/p/8664188.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!