abstract-class相关内容
我今天在做一些代码审查,发现了一些开发人员编写的旧代码.事情是这样的 公共抽象类 BaseControl{内部抽象 void DoSomething();} 如果你在同一个程序集中有一个派生类,它会工作 公共类 DerivedControl : BaseControl{内部覆盖 void DoSomething(){}} 但是在不同的程序集中派生基类会导致编译时错误 DerivedCon
..
抽象类不需要包含任何抽象方法. 除了不能实例化抽象类之外,还有什么其他原因可以使类抽象? 解决方案 抽象类的主要作用是提供一个适当的根类,可以从中派生出具体的(即非抽象的)子类.这是一个强大且通用的功能,可促进代码重用.抽象类封装了一系列数据类型共有的通用特性——这些特性在抽象类中太通用而没有意义,但可以在子类中覆盖 任何具有抽象方法的类都会自动抽象自身,并且必须使用关键字 a
..
我不明白我做错了什么... 抽象类 Css {抽象保护函数解析($data);}抽象类 CssElem 扩展了 Css {抽象保护函数解析($data);}类修饰符扩展 CssElem {函数 __construct($data = null) {如果($数据)$this->parse($data);}受保护的函数解析($数据){//一些代码...}} 它给了我: [Mon Jul 8
..
我是 Java 新手,我有一个初学者问题: NumberFormat 是一个抽象类,所以我假设我无法创建它的实例.但是有一个公共静态(工厂?)方法 getInstance() 允许我做 NumberFormat nf = NumberFormat.getInstance(); 我很困惑.如果有人能给我提示,我会很高兴: 如果有一个公共方法来获取这个抽象类的一个实例,为什么我们没有一
..
我是一名 java 开发人员,对面向对象的概念有很好的理解(或者,我认为是这样的).现在我正在学习设计模式(从头开始设计模式).我一直在阅读有关 OOPS 概念抽象的内容以简要了解它,阅读更多有关它的内容使我比之前更加困惑. 据我所知,抽象是指隐藏程序的内部细节,同时将接口暴露给其他程序员,而不用担心内部细节.但是,我不明白 抽象类如何适应这种抽象概念,其中抽象类要求我实现抽象方法,在
..
我有一个抽象类: @Component公共抽象类 BaseReport {公共无效出口(){...} 还有一堆扩展它的类,并覆盖 export() 方法(或不覆盖). @Component公共最终类 Report1 扩展了 BaseReport@成分公共最终类 Report2 扩展了 BaseReport 我的大多数测试自动装配扩展 BaseReport 的具体类,没有问题: publi
..
我在很多地方发现: 抽象类是应该用作基类的类. 抽象类是至少具有一个纯虚函数的类. 但总让我想到的一件事是为什么我们不能创建一个抽象类的实例?网上很多地方说创建实例没有意义,或者说应该作为基类使用.但是为什么创建抽象类的实例会报错? 解决方案 Your void bar()=0; is not valid -- =0 符号只能与虚函数一起使用. 抽象类的全部意义在于它是
..
抽象类CAbstract{私有字符串 mParam1;公共CAbstract(字符串参数1){mParam1 = param1;}}CBase 类:CAbstract{} 对于类CBase,应该通过提供参数来初始化,那么如何禁用CBase类的无参数构造函数呢? 解决方案 如果你在 CBase 中定义了一个参数化的构造函数,没有默认构造函数.你不需要做任何特别的事情. 如果您的意图是
..
假设我有一个仅包含静态方法和变量的实用程序类.例如: public abstract final class StringUtils{public static final String NEW_LINE = System.getProperty("line.separator");public static boolean isNotNullOrSpace(final String strin
..
Java 8 接口默认方法与抽象类中的非抽象方法- 两者之间有什么区别吗(除了iface的区别-类,可见性等) 默认方法是不是在 Java 中退步了,这意味着它违背了 Java 多年来宣传的本质?! 解决方案 抽象类中的非抽象方法将在其具体子类调用 super() 时被调用,如果它被覆盖.所以有多种可能.如果方法未被覆盖,则将执行超类方法.如果我们在具体的子类方法中使用 super(
..
我想知道是否有任何方法可以执行以下操作.我有一个抽象类 Shape 及其所有不同的子类,我想覆盖 clone 方法.我想要在该方法中做的就是从当前的 toString() 创建一个新的 Shape.显然我不能做以下事情,因为 Shape 是抽象的.有没有另一种方法可以做到这一点,因为在每个子类中覆盖克隆只是为了简单的名称更改似乎没有用. 公共抽象类Shape {公共形状(字符串 str){//从
..
如果抽象类中的公共构造函数只能由它们的派生类调用,那么它应该在功能上等同于受保护的构造函数.对吗? 在抽象类中声明公共构造函数而不是受保护的构造函数有什么区别吗?你会用它做什么?为什么编译器不抱怨? 解决方案 完全正确.你应该支持受保护的构造函数. 编辑:不,编译器不会抱怨,但像 FxCop(& 代码分析)这样的工具会.我相信你可以用抽象类上的公共构造函数来做一些奇怪的反射技巧
..
在 C# 类中是否可以有虚拟/抽象字段?如果有,是怎么做的? 解决方案 虚拟/抽象字段?不.字段只是用来保存数据.没有什么可实施的. 您可以定义虚拟/抽象属性.>
..
我陷入了以下情况: 我有一个名为 Ammo 的抽象类,其中 AmmoBox 和 Clip 作为子类. 我有一个名为 Weapon 的抽象类,其中 Firearm 和 Melee 作为子级. Firearm 是抽象的,ClipWeapon 和 ShellWeapon 作为子元素. 在Firearm里面,有一个void Reload(Ammo ammo); 问题在于,ClipWeap
..
这是我的示例抽象单例类: 公共抽象类 A {protected static 一个实例;公共静态一个 getInstance() {返回实例;}//...其余的抽象方法...} 这是具体的实现: public class B extends A {私人 B() { }静止的 {实例 = 新 B();}//...我的抽象方法的实现...} 不幸的是,我无法让 B 类中的静态代码执行,所以实例
..
我的 Python 应用程序包含许多抽象类和实现.例如: import abc导入日期时间类消息显示(对象):__元类__ = abc.ABCMeta@abc.abstractproperty定义显示(自我,消息):经过类 FriendlyMessageDisplay(MessageDisplay):定义问候(自我):小时 = datetime.datetime.now().timetuple(
..
我的 EF 模型的一部分如下所示: 总结: 位置有很多帖子 Post 是一个抽象类 讨论源自帖子 讨论有很多评论 现在,我要实现的查询: 获取有关位置 ID 1234 的信息,包括与这些讨论相关的任何讨论和评论. 我可以得到这样的讨论和评论: var 讨论 = ctx.Posts.OfType().include(x => x.Comments).ToList
..
我有以下结构: 抽象类 Base {公共摘要列表得到();//什么应该是泛型类型?}类 SubOne : 基础 {公共覆盖列表得到() {}}类子二:基{公共覆盖列表得到() {}} 我想创建一个抽象方法,该方法返回具体子类是什么类.因此,从示例中可以看出,SubOne 中的方法应该返回 List 而 SubTwo 中的方法应该返回 List. 我在基类中声明的签名中指定什么类
..
我有一个类是许多其他类的超类.我想知道(在我的超类的 __init__() 中)子类是否覆盖了特定的方法. 我试图用一个类方法来完成这个,但结果是错误的: 类超级:def __init__(self):如果 self.method == Super.method:打印“相同"别的:打印“不同"@类方法定义方法(cls):经过类 Sub1(超级):定义方法(自我):打印“嗨"类 Sub2(超
..
您如何处理 C++ 中的“无法实例化抽象类"错误?我在这里查看了一些类似的错误,但似乎没有一个与我遇到的完全相同或有问题.但是,话又说回来,我承认有几个要讨论的.这是编译错误: 这将我带到此页面:http://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=EN-US&k=k(C2259);k(VS.ERRORLIST)&rd=
..