oop相关内容
当我看到时我总是很困惑: 父 ref = new Child(); 子类扩展父类的地方. 对象 ref 在内存中的样子如何? 虚方法如何处理?非虚拟? 与以下有何不同: Child ref = new Child(); 解决方案 对象在内存中的外观如何? 您的问题不清楚.有两个相关的内存位置.变量与存储位置相关联.该存储位置包含对另一个存储位置的引用. 变量
..
..
考虑以下类: 公共类电话{私有布尔 has3g;公共布尔 has3g() {返回has3g;}公共无效 setHas3g(布尔 newVal){has3g = newVal;}}公共类黑莓扩展电话{私有布尔 hasKeyboard;公共布尔 hasKeyboard() {返回有键盘;}公共无效 setHasKeyboard(boolean newVal) {hasKeyboard = newVa
..
作为一个例子,假设我创建了一个名为 Shape 的抽象类和两个名为 Circle 和 Rectangle 的子类,它们都实现了一个 (abstract) 方法称为 Draw.我希望能够创建许多 Circle 和 Rectangle 对象,将它们存储在一个数组中,然后在每个数组对象上调用 Draw遍历数组. 我尝试过类似以下的方法: 形状.m: classdef (抽象) 形状
..
我有 3 个课程圆形、矩形和方形 我想获取上述每个类所需的数据并由用户创建. 表示用户可以想要什么,例如 3 个 Circles 、2 个 Rectangles 和 7 个 Squares .形状的数量取决于用户. 然后我想将它们保存在 unit list 中并调用我的类方法,它们是 calculateArea 和 calculatePerimeter 并显示周长和面积其中有他们
..
Android 上的 Realm 不支持模型继承/多态.p> 那么有没有办法在 Android 上共享字段?我们有 5 个模型,它们都共享相同的同步相关字段和代码.我们在当前的 SQLite 模型中使用继承;如果我们切换到 Realm,我们唯一的选择是在 5 个模型类中复制同步字段吗? 作为一种解决方法,我正在考虑让这些类实现一个 Syncable 接口,其中包含用于共享字段的 gette
..
假设我们有一个类 Animal,它扩展到其他三个类:Dog、Cat、Bird. 这个动物类有一个 talk() 和 move() 函数.talk 函数输出“Animal talk",move 函数输出“Animal Moving". 对于狗来说,这是“狗移动"和“狗吃".对于 Cat 和 Bird 类,这种差异是平行的“猫移动"等. 现在,由于多态性,如果我这样做了 动物 ch
..
当以下列方式将比较器应用到列表时,所使用的设计模式或此处使用的技术是什么? Collections.sort(myCollection, new Comparator() {@覆盖公共int比较(MyItem item1,MyItem item2){返回 item1.getId().compareTo(item2.getId());}}); 解决方案 TL;DR : Collectio
..
我有一个扩展 Parent 的类 Child. 父子 = new Child();如果(父实例的子实例){//做一点事} 这是返回真还是假,为什么? 解决方案 是,会的.为什么不呢? 因为 child 实际上是 Parent 的一个实例.如果您只想为孩子执行操作,则应检查 if (child instanceof Child){} 但是,您应该记住 Scott Meyers
..
试图弄清楚 PHP 是否支持方法重载、继承和多态等特性,我发现: 不支持方法重载 它确实支持继承 但我不确定多态性.我在网上搜索到了这个: 我应该注意到,在 PHP多态性不是它的方式应该.我的意思是它确实有效,但由于我们有一个弱数据类型,它的不正确. 那么真的是多态吗? 编辑只是不能在 PHP 支持多态 旁边放置一个明确的“是"或“否".我不愿意说:“PHP 不支持
..
我对这两个术语有点困惑,以下是我所知道的: 多态性是指不同类型的对象由一个通用接口处理的能力.而鸭子类型,是一种动态类型,允许不同类型的对象响应相同的方法. 据我了解,多态更多的是创建一个可以在不同类之间共享的接口.鸭子类型是关于松散类型,只要在消息的接收者上找到方法,就可以调用方法. 这是正确的吗?我对这两个很困惑,他们似乎有关系,但我不知道他们的关系是什么.提前非常感谢!
..
我想知道是否可以将派生类值的向量转换为基类值的向量.具体来说,我希望能够将基类对象的向量传递给其形式参数采用基类向量的函数.似乎无法直接使用,因为以下代码示例会产生错误(使用 g++): #include A类{};B类:公共A {};无效函数(std::vectorobjs){}int main(int argc, char **argv) {标准::向量objs_b;o
..
多态性如何替换循环内的 if-else 语句或 Switch?特别是它总是可以替换 if-else 吗?我在循环中使用的大多数 if-then 都是算术比较.这个问题是由此产生的 问题. int x;整数y;诠释z;而 (x > y){如果 (x
..
类基{......虚空函数1();虚空函数2();};类派生::公共基础{整数函数1();整数函数2();};主函数(){导出d;基数 *b = &d;int k = b->function1()//为什么使用 this 而不是下面的行?int k = d.function1();//有了这个,对虚函数的需求就消失了,对吧?} 我不是 CompSci 工程师,我想知道这一点.如果我们可以避免基类
..
伙计们,我有一个案例,需要子类在调用它的覆盖虚函数之前首先调用它的父虚函数. BaseClass::Draw(){}ChildClass::Draw(){BaseClass::Draw();//必须首先调用 BaseClass Draw.}GrandChildClass::Draw(){ChildClass::Draw();//必须先调用 ChildClass Draw.} 我想对客户隐藏这种
..
谁能用一个有效的例子来解释方法隐藏在C#中的实际使用? 如果方法是在派生类中使用 new 关键字定义的,则它不能被覆盖.然后它与创建一个具有不同名称的新方法(基类中提到的方法除外)相同. 使用 new 关键字有什么特别的原因吗? 解决方案 C#不仅支持方法覆盖,还支持方法隐藏.简单地说,如果一个方法没有覆盖派生方法,它就是隐藏它.必须使用 new 关键字声明隐藏方法.因此,第二
..
组合和继承. 我知道它们都是在适当时选择的工具,并且上下文对于在组合和继承之间进行选择非常重要.然而,关于每种情况的适当上下文的讨论通常有点模糊.这让我开始考虑继承和多态是传统 OOP 的不同方面有多么明显. 多态性允许人们同样指定“is-a"关系以及继承.特别是,从基类继承隐含地在该类与其子类之间创建了多态关系.然而,虽然多态可以使用纯接口来实现,但继承通过同时传递实现细节使多态关系
..
可能重复: 如何在 C 中模拟 OO 风格的多态性? 我试图通过我所知道的语言中的示例来更好地理解多态性的概念;C语言中是否存在多态性? 解决方案 这是 Nekuromento 的第二个例子,考虑到我认为面向对象 C 的惯用方式: 动物.h #ifndef ANIMAL_H_#define ANIMAL_H_结构动物{//使 vtable_ 成为指针,以便它们可以在实例之间
..
..
这是一个来自 http://www.cplusplus.com/doc 的多态性示例/tutorial/polymorphism.html(为便于阅读而编辑): //抽象基类#include 使用命名空间标准;类多边形{受保护:整数宽度;整数高度;上市:void set_values(int a, int b) { width = a;高度 = b;}虚拟 int 区域(无效
..