社区
C#
帖子详情
怎么声明不可继承的方法
lmqslyh
2007-12-07 01:01:30
怎么声明一个方法 子类不能继承 但是外部可以访问
还有不能事static方法
...全文
146
15
打赏
收藏
怎么声明不可继承的方法
怎么声明一个方法 子类不能继承 但是外部可以访问 还有不能事static方法
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
superyys
2008-09-16
打赏
举报
回复
申明成private,,外部调用的全局函数或者类用friend修饰.
我一般这样解决
yangdu328
2008-09-13
打赏
举报
回复
加final修饰类或方法
lmqslyh
2007-12-07
打赏
举报
回复
受教了 谢谢楼上的dh 呵呵
DemonXHunter
2007-12-07
打赏
举报
回复
一定是可以重写或者覆盖的,除非是私有函数,但是私有函数无法被外部调用,显然是无法达到的。
所以你这个要求无法达到。一般来说,不加virtual就可以了,很少有人用new来屏蔽父类的函数,除非那个人知道这么做的后果。并且,屏蔽父类的函数并不会导致父类的行为异常,所以一般也不会出什么乱子。
lmqslyh
2007-12-07
打赏
举报
回复
恩 明白了
多谢 我的提问错了...
应该是 子类可以继承 但是不能重写或者覆盖父类的
因为父类的方法已经满足需求了
这样的方法在父类怎么声明?
DemonXHunter
2007-12-07
打赏
举报
回复
给你看段代码就知道了,你需要学习一下基本的OOP编程的知识。对于一个子类对象,如果是重写虚函数,不管你是通过子类还是基类的形式去调,调的都是被重写的子类方法。而对于一个覆盖(Shadow)的函数,如果是通过父类调用的话,那么调用的就是父类函数,通过子类形式调,就是子类方法。
class A
{
public virtual void f1()
{
Console.WriteLine("A.f1 is called!");
}
public void f2()
{
Console.WriteLine("A.f2 is called!");
}
}
class B:A
{
public override void f1()
{
Console.WriteLine("B.f1 is called!");
}
public new void f2()
{
Console.WriteLine("B.f2 is called!");
}
}
class Program
{
static void Main(string[] args)
{
A a = new B();
a.f1();
a.f2();
Console.ReadKey();
}
}
==========输出结果
B.f1 is called!
A.f2 is called!
lmqslyh
2007-12-07
打赏
举报
回复
重写跟覆给调用时有什么区别?
DemonXHunter
2007-12-07
打赏
举报
回复
你不加virtual,子类就无法重写,只能覆盖。
北京的雾霾天
2007-12-07
打赏
举报
回复
“管理帖子”就可以了
lmqslyh
2007-12-07
打赏
举报
回复
各位大哥,怎么给别人分?
lmqslyh
2007-12-07
打赏
举报
回复
我想的是 防止子类重写这方法引发问题
而且父类这个方法功能比较简单 不需要子类重写
DemonXHunter
2007-12-07
打赏
举报
回复
没有这样的修饰符。 你这需求比较奇怪,讲讲你的想法,想要达到什么目的
vwxyzh
2007-12-07
打赏
举报
回复
把这个方法声明在一个sealed的类里面,没有子类,就没有任何子类能继承了,呵呵
lmqslyh
2007-12-07
打赏
举报
回复
哦 知道了
谢谢 怎么给分?
北京的雾霾天
2007-12-07
打赏
举报
回复
不可能。
Java 类
不可
被
继承
的几种
方法
1.final 修饰符 public final class NoModifer { //没有修饰符 默认为包内可见 ...最常用的,被final 修饰符修饰的类,
不可
以被
继承
2.private 构造
方法
package com.xinyu.test.java.Test; public class
构造
方法
的
继承
构造
方法
是类的一类特殊的
方法
,是创建对象实例的唯一
方法
。它的名字与类名完全相同且不返回任何数据类型,包括void也不能用。如果在类中没有
声明
构造
方法
,则...(2)子类不能
继承
父类的带参数的构造
方法
,而只能通...
java子类
继承
父类的哪些
方法
_关于Java 的
继承
问题,子类会
继承
父类的哪些东西?-----转载...
在Java
继承
里,父类的属性还有
方法
在
声明
时,如果是public关键字即公共属性,则在子类
继承
时,这些属性和
方法
都会被子类
继承
。受保护的也可以
继承
但是私有的类属性成员和
方法
则无法
继承
。.子类
继承
父类的成员变量当...
Java 复习 final和静态类
方法
不能被
继承
2.final 修饰
方法
:表明此
方法
不可
被重写比如:Object类中getClass();3.final用来修饰变量:此时的“变量就称为是一个常量”1.final修饰属性:可以考虑赋值的位置:显示初始化、代码块中初始化、构造器中初始化2....
面试题系列之接口是否可
继承
接口?抽象类是否可实现(implements)接口?抽象类是否可
继承
具体类?抽象类中是否可以有静态的main
方法
?
有一个面试四连击的题目:接口是否可
继承
接口?抽象类是否可实现(implements)接口?抽象类是否可
继承
具体类?抽象类中是否可以有静态的main
方法
? 上面这个题目我们来慢慢的剖析一下。先从基本的概念说起。 一、接口 ...
C#
110,500
社区成员
642,577
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章