我知道什么是多态,但却无法清楚地理解它.我的代码如下:
class Human
{
public virtual void CleanTheRoom()
{
}
}
class Woman:Human
{
public override void CleanTheRoom()
{
//women clean faster
}
}
class Man:Human
{
public override void CleanTheRoom()
{
//men clean slower, different code here
}
}
class Child:Human
{
public override void CleanTheRoom()
{
//empty ... children are lazy :)
}
}
Run Code Online (Sandbox Code Playgroud)
我应该解释这是多态的,因为基类Human中的所有派生类都包含方法CleanTheRoom但是它们中的每一个都以不同的方式实现?
我知道封装意味着一个对象不应该直接访问不同对象的成员...但我想它与公共领域有关?我假设公共方法不破坏封装..?我在这里不清楚,对任何解释都很高兴.
我试图了解但仍然不确定.如果基类中有构造函数,派生类将始终调用它?我知道他们可以覆盖它(这里不是正确的术语,我知道 - 我的意思是将代码添加到它们的构造函数中)但我假设如果构造函数是在基类中定义的,派生的构造函数将始终调用它.真的吗?
如果我向Resources.resx添加资源,它们是否嵌入在可执行文件中?
我已经读过资源存储在程序集中的某个地方,但项目中的所有文件(包括输出文件夹中的文件)都是程序集的一部分?
或者,汇编只是由编译器和资源生成的文件和模块不包含在程序集中?
有人可以澄清这是如何工作的吗?
我已经读过可以从派生类访问受保护的成员,但以下内容不起作用.
class A
{
protected int Test;
}
class B:A
{
A instanceOfA= new A()
public B()
{
instanceOfA.Test //Not possible
}
}
Run Code Online (Sandbox Code Playgroud) 阅读约翰夏普的书VS 2010,它说泛型允许消除铸造的需要,减少值类型的装箱 - 减少?我认为它被删除以及铸造?有人可以解释一下吗?
我知道界面中的成员就像抽象一样,但实际上它们是抽象的吗?我的意思是我不需要使用该关键字,所以我不确定它是隐含的还是它们在技术上不是抽象的...希望它有意义
c# ×6
.net ×2
abstract ×1
boxing ×1
constructor ×1
generics ×1
inheritance ×1
interface ×1
oop ×1
polymorphism ×1
protected ×1
resources ×1