我正在经历一个看似奇怪的问题,虽然我知道这个设计背后可能有一些原因,我想知道为什么会这样。
考虑两个类,Foo和Bar。Bar扩展Foo并重写Foo实现的方法。Foo非常简单:
public class Foo {
public Foo() {
System.out.println("Foo constructor");
someMethod();
}
public void someMethod() {
System.out.println("Foo.someMethod");
当从已经具有初始化程序的类继承时,如何添加自定义初始化程序?
我所拥有的是一个Vehicle类,它有一个接受参数name的参数化器。我想要做的是从这个Vehicle类继承,为新类创建另一个初始化器,但是继续使用现有的初始化器。
基类(这里没有问题):
class Vehicle{
var make:String
init(make:String){
self.make = make
}
}
新班(不起作用):
// Not sure how to structure this class
class Car:Vehicle {
var eng
我有两个类,如下所示;
public abstract class Class1 {
//...
public Class1() {
//...
function2();
//...
}
protected abstract void function2();
}
public class Class2 implements Class1 {
private final OnSomethingListener mOnSomethingListener = new OnSomethingListener(
我看到了下面的代码,在初始化它自己的变量(即public int seatHeight)之前,子类构造函数调用它自己的变量(即public int seatHeight),在更改初始化顺序之后,即将seatHeight = startHeight;放在super(startCadence, startSpeed, startGear);之前,我的IDE将显示错误消息。我只是想知道,在子类能够初始化自己的变量之前,调用超类构造函数的原因是什么?管理超类和子类初始化的一些规则是什么?
public class MountainBike extends Bicycle {
public
在objective-c中,如果一个特定的方法被它的(调用)子方法(Ren)覆盖了,那么如何在超类中确定它?
例如,在下面的示例中,子类Z不覆盖方法b,因此基类X将执行一些额外的默认处理。但是,ZY在子类Y中实现了b,因此不需要缺省处理。
// base class X
-(void)a
{
// do something
}
-(void)b
{
if("no_child_has_implemented_b") {
// add some default behavior
}
}
// child class Y : X
-(void)a
假设我有两个类:基类和子类,如下所示:
class Base{
var name: String?
init() {
name = "The base class"
}
deinit {
println("call Deinitialization in base class")
name = nil
}
}
class Sub: Base{
var subName: String?
init() {
super.init()
subName
下面是一个例子:
class A {
var num: Int
required init(num: Int) {
self.num = num
}
}
class B: A {
func haveFun() {
println("Woo hoo!")
}
}
我已经将A的init函数标记为required。这到底是什么意思?我在子类B中完全省略了它,编译器没有任何错误。那么它是如何被要求的呢?
我有一个类A,它扩展了B类并重写了在父构造函数中调用的方法createBody():
public class A extends B {
SomeClass x = null
public A(int parameter) {
super(parameter);
//do something with atributte x
}
createBody() {
//do some stuff
//assign attribute x
}
}
public class B {
我试图回答以下问题:
子类不会继承父类的某些成员。请举出三位这样的成员。
我知道私有成员不会继承到子类,默认成员也不会在包之外继承。有人能完成答案吗?
编辑:-我相信静态成员是根据下面的演示继承的。
public class sup {
public static void main(String agr[]){
}
protected static int staticInt=0;
protected final int finalInt=3;
protected int protectedInt=0;
public String p
我目前有两个类,其结构如下(在这里简化):
class A
{
private List<String> myList = new ArrayList<>();
public A()
{
init();
}
public void init()
{
myList.add("apple");
}
}
class B extends A
{
private List<String> myList = new ArrayList<>();
public B()
{
请考虑以下代码:
class Test {
Test() {
System.out.println("In constructor of Superclass");
}
int adds(int n1, int n2) {
return(n1+n2);
}
void print(int sum) {
System.out.println("the sums are " + sum);
}
}
class Test1 extends Test {
Tes