草庐IT

java - 为什么嵌套的子类可以访问其父类的私有(private)成员,而孙子却不能?

可能类似于问题,WhycanouterJavaclassesaccessinnerclassprivatemembers?或Accesstosuperclassprivatefieldsusingthesuperkeywordinasubclass.但有一些区别:子类可以访问其父类(并且只能访问最近的父类)的私有(private)成员。给出下面的示例代码:publicclassT{privateintt;classT1{privateintt1;publicvoidtest(){System.out.println(t);}}classT2extendsT1{privateintt2;

java - 在 Scala 中,如何子类化具有多个构造函数的 Java 类?

假设我有一个带有多个构造函数的Java类:classBase{Base(intarg1){...};Base(Stringarg2){...};Base(doublearg3){...};}如何在Scala中扩展它并仍然提供对Base的所有三个构造函数的访问?在Scala中,子类只能调用它的父类(superclass)的构造函数之一。我该如何解决这个规则?假设Java类是我无法更改的遗留代码。 最佳答案 很容易忘记一个特征可以扩展一个类。如果你使用trait,你可以推迟决定调用哪个构造函数,如下所示:traitExtendedext

java - 在 Scala 中,如何子类化具有多个构造函数的 Java 类?

假设我有一个带有多个构造函数的Java类:classBase{Base(intarg1){...};Base(Stringarg2){...};Base(doublearg3){...};}如何在Scala中扩展它并仍然提供对Base的所有三个构造函数的访问?在Scala中,子类只能调用它的父类(superclass)的构造函数之一。我该如何解决这个规则?假设Java类是我无法更改的遗留代码。 最佳答案 很容易忘记一个特征可以扩展一个类。如果你使用trait,你可以推迟决定调用哪个构造函数,如下所示:traitExtendedext

java - 如何强制在我的抽象类的所有子类中定义构造函数

我有一个定义抽象方法的抽象类A。这意味着,要使一个类可实例化,必须实现所有抽象方法。我希望我的所有子类都实现一个以2个整数作为参数的构造函数。声明构造函数违背了我的目的,因为我希望在子类中定义构造函数,而我对实现一无所知。此外,我不能将构造函数声明为抽象的;有没有办法做到这一点?我想要的示例:假设我正在定义一个Matrix类的API。在我的问题中,Matrix无法更改它们的尺寸。要创建一个矩阵,我需要提供它的大小。因此,我希望我的所有实现者都为构造函数提供大小作为参数。这个构造函数的动机是问题,而不是实现问题。只要保留方法的所有语义,实现就可以对这些进行任何操作。假设我想在我的抽象类中

java - 如何强制在我的抽象类的所有子类中定义构造函数

我有一个定义抽象方法的抽象类A。这意味着,要使一个类可实例化,必须实现所有抽象方法。我希望我的所有子类都实现一个以2个整数作为参数的构造函数。声明构造函数违背了我的目的,因为我希望在子类中定义构造函数,而我对实现一无所知。此外,我不能将构造函数声明为抽象的;有没有办法做到这一点?我想要的示例:假设我正在定义一个Matrix类的API。在我的问题中,Matrix无法更改它们的尺寸。要创建一个矩阵,我需要提供它的大小。因此,我希望我的所有实现者都为构造函数提供大小作为参数。这个构造函数的动机是问题,而不是实现问题。只要保留方法的所有语义,实现就可以对这些进行任何操作。假设我想在我的抽象类中

java - 从父类(super class)中获取子类的名称

假设我有一个名为Entity的基类。在那个类中,我有一个静态方法来检索类名:classEntity{publicstaticStringgetClass(){returnEntity.class.getClass();}}现在我有另一个类扩展它。classUserextendsEntity{}我想获取用户的类名:System.out.println(User.getClass());我的目标是看到“com.packagename.User”输出到控制台,但我最终会得到“com.packagename.Entity”,因为实体类是直接从静态方法引用的。如果这不是静态方法,则可以通过在En

java - 从父类(super class)中获取子类的名称

假设我有一个名为Entity的基类。在那个类中,我有一个静态方法来检索类名:classEntity{publicstaticStringgetClass(){returnEntity.class.getClass();}}现在我有另一个类扩展它。classUserextendsEntity{}我想获取用户的类名:System.out.println(User.getClass());我的目标是看到“com.packagename.User”输出到控制台,但我最终会得到“com.packagename.Entity”,因为实体类是直接从静态方法引用的。如果这不是静态方法,则可以通过在En

java - 为什么 Java 中没有子类可见性修饰符?

在不止一次的情况下,我发现自己想要一种在Java中无法实现的变量可见性。我希望某些成员在他们自己的类和任何子类中可见,但对包的其他部分或世界其他部分不可见。换句话说,我想要这个:ModifierClassPackageSubclassWorldsub-classYNYN然而Java的设计者只给了我this:ModifierClassPackageSubclassWorldpublicYYYYprotectedYYYNnomodifierYYNNprivateYNNN我想要这样的典型情况是创建抽象类时。有时我发现抽象的父级需要访问某些成员,但具体的子级也需要。我可以通过使成员protec

java - 为什么 Java 中没有子类可见性修饰符?

在不止一次的情况下,我发现自己想要一种在Java中无法实现的变量可见性。我希望某些成员在他们自己的类和任何子类中可见,但对包的其他部分或世界其他部分不可见。换句话说,我想要这个:ModifierClassPackageSubclassWorldsub-classYNYN然而Java的设计者只给了我this:ModifierClassPackageSubclassWorldpublicYYYYprotectedYYYNnomodifierYYNNprivateYNNN我想要这样的典型情况是创建抽象类时。有时我发现抽象的父级需要访问某些成员,但具体的子级也需要。我可以通过使成员protec

objective-c - 子类中的父类(super class)方法放置

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:WhenshouldIcallsuper?调用父类(superclass)方法如[superviewDidLoad]或[superinit]或[superviewDidUnload]时是否有区别/首选方式?我看过教程将它们放在子类方法的第一行或最后一行。我只是想知道是否会有任何依赖关系,比如父类(superclass)方法是否会做一些child可以使用的设置在预先调用时或者如果父类(superclass)可以对child所做的事情进行一些优化在最后调用时。