简述sealed关键字_java field

简述sealed关键字_java fieldsealed的中文意思是密封,故名思义,就是由它修饰的类或方法将不能被继承或是重写。sealed关键字:在类声明中使用sealed可防止其它类继承此类;在方法声明中使用sealed修饰符可防止扩充类重写此方法。相当于Java中的final类和final方法密封类:密封类在声明中使用sealed修饰符,这样就可以防止该类被其它类继承。如果试图将一个密封类作为其它类的基类,C#将提示出错。在哪些场合…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

sealed的中文意思是密封,故名思义,就是由它修饰的类或方法将不能被继承或是重写。

sealed关键字:

在类声明中使用sealed可防止其它类继承此类;在方法声明中使用sealed修饰符可防止扩充类重写此方法。相当于Java中的final类和final方法

密封类:

密封类在声明中使用sealed 修饰符,这样就可以防止该类被其它类继承。如果试图将一个密封类作为其它类的基类,C#将提示出错。

在哪些场合下使用密封类呢?实际上,密封类中不可能有派生类。如果密封类实例中存在虚成员函数,该成员函数可以转化为非虚的,函数修饰符virtual 不再生效。

密封方法:

C#还提出了密封方法(sealedmethod) 的概念,以防止在方法所在类的派生类中对该方法的重载。对方法可以使用sealed 修饰符,这时我们称该方法是一个密封方法。

不是类的每个成员方法都可以作为密封方法密封方法,要作为密封方法必须对基类的虚方法进行重载,提供具体的实现方法。所以,在方法的声明中,sealed 修饰符总是和override 修饰符同时使用。请看下面的例子代码:

让我们看下面的例子:abstract class AbstractClass

{

public abstract void Method( ) ;

}sealed class SealedClass: AbstractClass

{

public override void Method( )

{ //… }

}

如果我们尝试写下面的代码class OtherClass: SealedClass

{

}

C#会指出这个错误,告诉你SealedClass 是一个密封类,不能试图从SealedClass 中派生任何类。

再看一个示例using System ;

class A

{

public virtual void F( )

{

Console.WriteLine(“A.F”) ;

}

public virtual void G( )

{

Console.WriteLine(“A.G”) ;

}

}

class B: A

{

sealed override public void F( )

{

Console.WriteLine(“B.F”) ;

}

override public void G( )

{

Console.WriteLine(“B.G”) ; }

}

class C: B

{

override public void G( )

{

Console.WriteLine(“C.G”) ;

}

}

类B 对基类A 中的两个虚方法均进行了重载,其中F 方法使用了sealed 修饰符,成为一个密封方法。G 方法不是密封方法,所以在B 的派生类C 中,可以重载方法G,但不能重载方法F。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/201348.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • cdn加速以及前后分离SpringBoot+Vue 配置https及SSL证书「建议收藏」

    cdn加速以及前后分离SpringBoot+Vue 配置https及SSL证书「建议收藏」配置方法同上篇文章一样CDN加速配置,阿里云cdn内配置好以后即可剩下把前端服务器nginx内的证书文件上传以及配置写好即可。后端服务器也同上配置证书下载上传服务器配置好nginx即可。如果都配置好以后,不可以访问时,注意查看前端请求接口是否为https方式。如果为http时,检查是否更新服务器成功,如果成功后还不可以正常访问时,前端修改代码如下:vue.config.js内添加下行代码。index.html下添加代码:https:true完毕!…

    2022年8月19日
    6
  • 面试之SpringBoot

    面试之SpringBoot面试之SpringBoot

    2022年4月23日
    45
  • jeeplus-vue-boot 8.0版本 前后端分离 跨域 Nginx配置[通俗易懂]

    jeeplus-vue-boot 8.0版本 前后端分离 跨域 Nginx配置[通俗易懂]简单分享一下jeeplus框架部署liunx服务器跨域问题 ,因为我这个是前后端服务器分离所以配置了俩份java后端配置1.跨域后端配置nginx(图-1)上配置 server { listen 80; server_name xxx.xx.xxx; #后端服务域名 #charset koi8-r; #access_log logs/host.access.log main; locatio

    2022年8月20日
    36
  • java inputstream和outputstream_java runnable

    java inputstream和outputstream_java runnable首页>基础教程>IO流>InputStream类JavaInputStream类java.io.InputStream类是所有JavaIO输入流的基类,它是以字节为单位的输出流。定义publicabstractclassInputStreamextendsObjectimplementsCloseable此抽象类是表示字节输入流的所有类的超类。需…

    2022年9月21日
    3
  • NPN PNP开关电路[通俗易懂]

    NPN PNP开关电路[通俗易懂]   在设计电路板时需要用3.3v开关5v电源,所以这时候用到了NPN-PNP开关电路。我最开始的设计是这样的(npn采用的是9013,pnp采用的是8550):   开始没发现问题。真正调试的时候发现NPNQ1管烫的非常厉害。后才才发现原因:应该在QI集电极和Q2基极之间加上一个电阻。这是因为当向图中这样连接时VCC通过Q2直接加在了Q1的ce两端,Q2的be电压很小,相当于有一大…

    2025年12月10日
    4
  • 程序心形曲线绘制_java输出心形图案

    程序心形曲线绘制_java输出心形图案代码如下:importjava.awt.Color;importjava.awt.Graphics;importjava.awt.Image;importjava.awt.Toolkit;importjavax.swing.JFrame;@SuppressWarnings(“serial”)publicclassDemoextendsJFrameimplementsRunna…

    2022年10月16日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号