暂无权限

加入尚新途,才有权限看这些视频哦!

点击前往
×
问答
微信用户
1楼
public class TestSuper01 { 
    public static void main(String[ ] args) {
        new ChildClass().f();//这个改成new ChildClass()为啥没有输出
    //TestSuper02里面就能输出
    }
}
class FatherClass {
  public int value;
  public void f(){
    value = 100;
    System.out.println ("FatherClass.value="+value);
   }
}
class ChildClass extends FatherClass {
  public int value;
public int age;
  public void f() {
    super.f(); //调用父类的普通方法
    value = 200;
    System.out.println("ChildClass.value="+value);
    System.out.println(value);
    System.out.println(super.value); //调用父类的成员变量
   }
public void f2() {
    System.out.println(age);   }


}


尚新途

image.png可以啊

公子小白
2楼

Worker类不是应该会自动定义一个无参构造器吗?还是父类定义构造器后会影响到子类自动定义构造器?

image.png


Rally_YJ
3楼

老师我想问下这个是什么意思,是新建一个ChildClass对象吗,那为什么不用新建FatherClass对象

image.png

尚新途

首先你要知道老师这节课讲的是什么,老师讲的是继承,而继承就是子类继承了父类,老师这里演示的是调用子类的时候会默认调用到父类的无参构造。

Rally_YJ
4楼

老师我想问下这个表达什么意思

image.png

尚新途

就是创建了一个ChildClass对象并且通过这个对象调用f方法。

Aki
5楼
TestSuper2 {
    (String[] args) {
        System..println()ChildClass02()}

}
FatherClass02{
    fatherClass02{
         System..println()}

}
ChildClass02 FatherClass02{
    ChildClass02{
        System..println()}
}

1680938160186.jpg

尚新途

image.png去掉class

微信用户
6楼



{~[~)D1D2G`UB85F(3O~WKL.png

老师我这个测试super()关键字的代码中,在main方法中

new ChildClass().f();

会报错,需要修改为

new FatherClass.ChildClass().f();

然后还会报错。直到把下面的ChildClass类变为静态类才不报错

static class ChildClass extends FatherClass

是我的代码打错误了,还是我的IDEA版本过高,和视频课中老师的版本不一样的原因,还是其他原因呢?求解。




尚新途

类嵌套了

注意位置

image.png

公子小白
7楼

为什么是public int value?

请问public在这是什么作用?

尚新途

public表示公开的,是一个访问权限,表示在别的地方都可以访问的

小刘冲冲冲
8楼
package com.itbaizhan.oop;

/**
 * 测试继承树的追溯
 */
public class TestSuper02 {
    public static void main(String[] args) {
        new ChildClass2();
    }
    class FatherClass2{
        public FatherClass2(){
            super();
            System.out.println("创建FatherClass2");
        }
    }
    class ChildClass2 extends FatherClass2{
        public ChildClass2(){
            super();//在一个类中,若是构造方法的第一行没有调用super(...)或者this(...);
                    // 那么Java默认都会调用super(),含义是调用父类的无参数构造方法
            System.out.println("创建ChildClass2");
        }
    }
}

c58fa876147bbb63d76442d6e8c3329.png老师,运行不了,帮忙看下怎么修改,谢谢!

尚新途

image.png

郭霖
9楼

创建不了FatherClass,当前面加个void才不报错但还只显示最先出来的那个修改.png

尚新途

方法名和类名写的不一样的

sand
10楼

屏幕截图 2023-01-28 171914.pngnew ChildClass().f();  是什么意思啊

尚新途

new ChildClass()这个叫匿名函数,只能一次,new了一个 ChildClass对象,但是这个对象没有具体的名字,只能使用一次

微信用户
11楼

这个外部可调用的外部指的是什么?


尚新途

理解为另一个类。

Goose
12楼
public class TestSuper02 {
    public static void main(String[] args) {
        new ChildClass2();
    }
}
class FatherClass2{
    static {
        System.out.println("静态初始化:ChildClass2");
    }
    public FatherClass2(){
        System.out.println("创建MotherClass2");
    }
}
class ChildClass2 extends FatherClass {
    static {
        System.out.println("静态初始化:ChildClass2");
    }
    public ChildClass2() {
        System.out.println("创建ChildClass");
    }
}

第一张图片是我的,第二张是讲课老师的,运行结果不太一样,请问老师我的代码是哪里有问题呢呢。

尚新途

在子类的构造方法的第一行加上super();

爱吃的小胖子
13楼
class ChildClass2 extends FatherClass{
    static{
        System.out.println("静态初始化:ChildClass2");
    }
    public ChildClass2(){
        super();//在一个类中,若是构造方法的第一行没有调用super(...)或者this(...); 那么Java默认都会调用super(),含义是调用父类的无参数构造方法。
        System.out.println("创建ChildClass");
    }
}

1667724704675.png为啥不输出上面的??是

super

继承之前的FatherClass类吗??可为啥不输出上面的呢


尚新途

代码发过来我看看

尚新途
package com.itbaizhan.oop;

/**
 * 继承树的追溯
 */
public class TestSuper02 {
    public static void main(String[] args){
        new ChildClass2();
    }
}
class FatherClass2{
    static{
        System.out.println("静态初始化:FatherClass2");
    }
    public FatherClass2(){
        super();
        System.out.println("创建FatherClass2");
    }
}
class ChildClass2 extends FatherClass2{
    static{
        System.out.println("静态初始化:ChildClass2");
    }
    public ChildClass2(){
        super();//在一个类中,若是构造方法的第一行没有调用super(...)或者this(...); 那么Java默认都会调用super(),含义是调用父类的无参数构造方法。
        System.out.println("创建ChildClass");
    }
}


尚新途

这个是有调用的呀,要不你微信找我我给你看看image.png

爱吃的小胖子
14楼
new ChildClass2();

这个是什么作用呀?

public FatherClass2

这个是创建对象吗?

ChildClass2()

我看这个后面的2不加也不报错,是什么原因呀?


尚新途

new ChildClass2()是创建对象,不加2也不报错是因为你有一个ChildClass类

。。。...
15楼

3333333333.png为什么不会显示father?,虽然Childrenclass2没继承Fatherclass2,但程序执行前不是优先加载类吗,所以Fatherclass2类中的静态初始化块中的打印father应该会被执行吧?

尚新途

没有发生继承关系啊

自我检测(5S)