抽象类中的静态属性 - c#

谁能解释为什么静态属性为null?

class Program
{
    static void Main(string[] args)
    {
        string s = Cc.P1; // is null
    }
}

public class Cc
    : Ca
{
    static Cc()
    {
        P1 = "Test";
    }
}

public abstract class Ca
{
    public static string P1
    {
        get;
        protected set;
    }
}

参考方案

那是因为在编写Cc.P1时,实际上是在引用Ca.P1,因为它是在这里声明的(由于P1是静态的,所以它不参与多态性)。因此,尽管看起来很漂亮,但是您的代码根本没有使用Cc类,并且Cc静态构造函数也没有执行。

如何从jar文件创建C库? - java

我有一个图书馆的jar文件,其中的内容是一堆.class文件spl ├── acm │   ├── graphics │   │   ├── DrawLineElement.class │   │   ├── EndRegionElement.class │   │   ├── FinalPathElement.class │   │   ├── G3DRe…

在抽象类中调用公共静态函数 - php

我想这个问题更适合语言爱好者。我有以下课程:<?php abstract class ScopeFactory { public static function doStuff() { } } 现在,我可以像下面这样调用此函数:ScopeFactory::doStuff()这很愉快。我一直以这样的印象编写代码:abstract类不能直接使用-它们必须由…

字段不能是静态的? - java

该代码有错误public class DoIt { public static void main(String[] args) { final class Apple { public static String place = "doIt"; } Thread thread = new Thread(new Runnable() { …

子类可以创建抽象的超类类型的对象吗? - java

我不确定我是否正确问了这个问题,但我是在作业中给我的ClassA是抽象的B类扩展了A类那么在ClassB的主要方法中,我们有:ClassA obj =新的ClassB();这里发生了什么,这样做的目的是什么? 参考方案 您永远无法创建来自抽象类的对象。曾经期。在这里,被分配了对象的变量是抽象类型,但是变量所指的对象本身不是,也永远不可能是。引用和引用变量之间…

Java:静态字段在内存中的哪个位置? - java

如果我们将对象存储在对象的静态字段中,那么JVM如何为它分配内存?它是否存在于“隐式”(不确定我是否使用正确的单词)类对象中?静态字段与对象字段有何不同? 参考方案 静态字段是类变量,并且在该类的所有实例之间共享。实例变量(或我认为您引用它们的对象字段)属于类的各个实例,并且不共享。至于它们存储在内存中的位置将根据JVM的实现而定,因此没有理由需要两个不同的…