我有三个班级:
public class A {
public A(){
System.out.println("in A");
}
}
public class B extends A{
public B(){
System.out.println("in b");
}
}
public class C extends B{
public C(){
System.out.println("in C");
}
}
现在我真的不确定构
有人能解释一下这个构造函数调用是如何工作的吗?因为我以为它应该打印出来
A班的大家好
B班的大家好
C班的大家好
我在这里很困惑。任何帮助都是非常感谢的。下面是我的密码。
public class A {
A(){
System.out.println("hello from class A");
}
}
public class B extends A {
B(){
System.out.println("hello from class B");
}
}
public class C extends B {
我对继承和对象创建感到非常困惑,我试图理解在下面的示例中完全构造了哪些对象。
class example
{
public static void main (String[] args)
{
System.out.println("starting...") ;
A localAinMain = new A() ; // object created
B localBinMain = new B() ; //
#include<iostream>
using namespace std;
class A
{
public:
A(){ cout <<"1";}
A(const A &obj){cout <<"2";}
};
class B: virtual A
{
public:
B(){cout <<"3";}
B(const B & obj):A(obj){cout<<"4";}
};
class C: virtual
我在想,这可能是一个重复的问题,但我试着阅读了几乎所有相关的帖子,没有一个是我正在寻找的具体问题。
好的,我知道你不能从基类指针调用派生类中的函数,除非它被标记为虚拟的。就像在参考程序1中一样,如果WhichClass()没有被标记为虚拟,它就不能调用B类的WhichClass()。
#include<iostream>
using namespace std;
class A
{
public:
const char* WhichClass(){return "A";}
};
class B:public A
{
public:
const cha
我的问题是,我有三节课,A是抽象课。B来自A,C来自B。
我只列出我有疑问的函数。
class A{
public:virtual void storedata(int a, int b, int c, int d)=0;
}
B.h
class B: public A{
public:virtual void storedata(int a, int b, int c, int d);
}
B.cpp
void storedata(int a, int b, int c, int d)
{ do something }
C.h
class C: public B{
public:virt
以下是我非常理解的一些事情:
abstract class A {
public void foo() {
System.out.println("a");
}
}
abstract class B extends A {
@Override
public abstract void foo();
public void bar() {
super.foo();
foo();
}
}
class C extends B {
@Override
publi
当我试图用一种常见的方式--使用虚拟继承--来“解决”通常的钻石问题时,出现了一个奇怪的问题:
A
/ \* both virtual
B C
\ /
D
然而,我的基类A没有默认构造函数,所以我从D手动调用它。然而,当我试图将一个类E添加到这个菱形中作为C继承时
A
/ \* both virtual
B C
\ / \
D E
仍然需要在E构造函数中手动调用A的构造函数,即C不需要从E创建A,即使没有多重继承也没有钻石A-C-E。
class A
{public:
A (int _N): N(
class A {
public A() {
System.out.println("Constructor A");
}
}
class B extends A {
public B() {
System.out.println("Constructor B");
}
}
class C extends B {
public C() {
System.out.println("Constructor C");
}
public stat
下面是一个简单的例子。我有两个抽象类A和B,一个具体类C,它包含抽象方法。
当我创建一个新的C时,我希望看到A和B的构造函数被调用。你知道为什么它们不被调用吗?
//Q.java
class Q {
abstract class A {
A() {
System.out.println("in A");
}
public abstract void sayHi();
}
abstract class B extends A {
B() {
su
using namespace std;
class C
{
int a;
public:
C(int aa=0) {a=aa;}
~C() {cout << "Destructor C!" << a << endl;}
};
class D: public C
{
int b;
public:
D(int aa=0, int bb=0): C(aa) {b=bb;}
~D() {cout << "Destructor D!
我有以下Ruby代码:
class B
class << self
protected
def prot
puts "victory"
end
end
end
class C < B
def self.met
C.prot
end
end
C.met
它试图证明受保护的类方法是在Ruby中继承的。问题是,如果我将met方法转换为这样的实例方法:
class B
class << self
protected
def prot
puts "victo
我对这段代码有点困惑:
class A{
class B{
}
}
class C extends A.B{
C(A a){
a.super();
}
}
"a.super();“是什么意思?之前我认为超级链接到她的父类,但是" super ()“-链接到父类的构造函数,但实际上A类没有父类(不介意对象...),那么在这个上下文中它意味着什么呢?
谢谢大家。
在“Java:完整的参考”一书中
// Demonstrate when constructors are called.
// Create a super class.
class A {
A() {
System.out.println("Inside A's constructor.");
}
}
// Create a subclass by extending class A.
class B extends A {
B() {
System.out.println("Insi
我正在使用selenium开发ERP dynamic ax7的测试自动化。因此,我在dynamics ax 365上使用任务记录器记录场景,为了生成报告,我使用了extentreports 2.41.0,为此我创建了类BasicReport:
using NUnit.Framework;
using RelevantCodes.ExtentReports;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Ta
class Customer {
public String name;
public Customer(String name) {
this.name = name;
}
}
public class Main {
public static void main(String[] args) {
Customer c = new Customer("Sally");
System.out.println(c);
System.out.println(c.name);
class A {
A() {
System.out.print("A");
}
}
class B extends A {
B() {
System.out.print("B");
}
}
class C extends B {
C() {
System.out.print("C");
}
}
public class My extends C {
My(){
super();
}
public static void main(Stri
如果有两个Java类对已编译的C代码进行本机调用,而我在另一个类中同时调用这两个类,是否会影响内存?例如,我有A类和B类,这两个类都调用本机函数。它们的设置如下:
public class A{
// declare the native code function - must match ndkfoo.c
static {
System.loadLibrary("ndkfoo");
}
private static native double mathMethod();
public A() {}
pub
class C {
static int b = 1;
void f1() {
System.out.println(C.b); // Access static variable indirectly
}
}
class A {
public static void main(String a[]) {
C as = new C();
as.f1();
}
}
class C {
int a = 0;
void f1() {
System.out.println(C
我想做以下事情:
class P {
P(int a) {
// construct
}
}
class C extends P {
}
// in main
int a = 2;
C foo = new C(a); // can I do this?
我想通过调用父类P的构造函数来创建子对象C,而不是在类C中编写任何构造函数,比如"super(a)“。这有可能吗?
我的想法是,我有很多像“C类”这样的类,它需要与“P类”相同的构造函数功能。所以我不想在每次创建一个类似的类时都编写一个构造函数方法。
谢谢
我正在尝试重写__init__方法,但是当我调用超级方法时,在该方法中创建的属性不可用。我可以看出这不是一个继承问题,因为class B仍然有可用的属性。
我认为代码示例会更好地解释它:-)
Python 2.5.2 (r252:60911, Oct 5 2008, 19:24:49)
[GCC 4.3.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> class A(object):
我有A类,并且编写了一个子类B,C.A只有一个参数化的构造函数。C必须调用B的超级构造函数,B必须调用这个A的超级构造函数,现在我想使用object作为参数。因此,参数对象必须持有C的引用。
语言: java
Calss A:
public class A {
private C c;
protected A(C c) {
this.c = c;
}
}
B类:
public class B extends A {
protected B(C c) {
super(c);
}
}
类C:
现在,当我想像这样调用构造函数时,Eclipse说:
Canno
简单地说,Python描述了获取属性时的查找过程。这本书区分了两个案例
从类(例如cls.name )获取属性时的查找过程
从类获取属性
当您使用语法C.name来引用类对象C上的属性时,查找分两个步骤进行:
1. When `name` is a key in `C.__dict__`, `C.name` fetches the value `v` from `C.__dict__['name']` . Then, when `v` is a descriptor (i.e., `type(v)` suppl
代码正在打印所有构造函数。我读到,当我们从另一个类派生类时,构造函数不会被继承。那么为什么创建c是从b和a调用构造函数呢?
class A
{
public:
A() { cout << "A's constructor called" << endl; }
};
class B
{
public:
B() { cout << "B's constructor called" << endl; }
};
class C: public B, public A // Note the
如果到现在为止,我懂了一点英语,现在我意识到我什么都不懂。我很困惑,我很难理解,但我不能。有人可以解释这个程序,当使用self,parent,static时,以及我所做的所有最小的改变是如何改变结果的,而我不能理解发生了什么。非常感谢..
来自的代码
<?php
class A {
public static function foo() {
static::who();
}
public static function who() {
echo __CLASS__."\n";
}
}
class B e
我正在学习python,并开始学习继承中的MRO。
我已经读过super的用法和它的用法,但是我不能把我的理解放在下面的问题上。如果它不是超级的,我知道B是被调用的。D->B->C->A但是当添加super时,我不知道为什么输出是这样的
class A:
def test(self):
print("test of A called")
class B(A):
def test(self):
print("test of B called")
super().test()
clas
我正在练习如何使用toString()、多态性和继承。现在我有下面的代码,它包含了我想要打印的所有信息,它确实打印了,但我有一些不需要的行。
我只需要第一行和第三行,但我不太确定为什么要打印出其他三行。
public class Test_toString{
public static void main(String[] args){
Car c = new Car();
System.out.println(c.toString());
NamedCar c2 = new NamedCar(160, 8, "gre