1.如何实现在main方法执行前输出“hello word”

静态代码块在类被加载时就会被调用,且只初始化执行一次,因此可以在main()方法执行前就被调用。若子类继承父类,都存在静态语句块,会先执行父类再执行子类,当子类静态语句块执行完后,会检查父类有没有语句块,若有,执行,再执行父类的构造函数,接着是子类的语句块,构造函数。

https://www.cnblogs.com/jycboy/p/5257615.html

子类的构造方法,不管这个构造方法带不带参数,默认的它都会先去寻找父类的不带参数的构造方法。如果父类没有不带参数的构造方法,那么子类必须用supper关键子来调用父类带参数的构造方法,否则编译不能通过。

2.java中&与&&的区别

&   不管怎样,都会执行"&"符号左右两边的判断条件

&& 只有当符号"&&"左边程序为true后,才会执行符号"&&"右边的判断条件。

二者的共同点是只有当左右两边都为true时,条件成立。

3.什么是构造函数,它的特点

一种特殊的方法,主要用来创建对象时初始化对象。

有如下特点:

1.构造函数方法名和类名一致。2.构造函数没有返回值,void也不行。3.一个类可以有多个构造函数。

4.每个类都有一个默认的构造方法 5.在创建新对象时,自动调用构造函数。

4.super关键字

子类不会获得父类的构造器,但子类构造器里可以调用父类构造器初始化代码。 
1.1 在一个构造器中调用另一个重载的构造器,使用this调用来完成。如下代码段:

public class Component {

    private String name;
    private int age;

    public Component(String name)
    {
        this.name = name;
    }

    public Component(String name,int age)
    {
        this(name);
        this.age = age; 
    }
}

在子类构造器中调用父类构造器使用super调用来完成。 
下面程序中定义了Base类和Sub类,其中Sub类是Base类的子类,程序在Sub类的构造器中super来调用Base构造器的初始代码。

class Creature
{
    public Creature()
    {
        System.out.println("Creature无参数的构造器");  
    }
}
class Animal extends Creature
{
    public Animal(String name)
    {
        System.out.println("Animal带一个参数的构造器,"
            + "该动物的name为" + name);
    }
    public Animal(String name , int age)
    {
        //使用this调用同一个重载的构造器
        this(name);
        System.out.println("Animal带两个参数的构造器,"
            + "其age为" + age);
    }
}
public class Wolf extends Animal
{
    public Wolf()
    {
        //显式调用父类有两个参数的构造器
        super("灰太狼", 3);
        System.out.println("Wolf无参数的构造器");
    }
    public static void main(String[] args)
    {
        new Wolf();
    }
}
super 可以增加方法验证第一题结论

相关文章:

  • 2022-12-23
  • 2022-01-01
  • 2022-12-23
  • 2022-12-23
  • 2021-12-24
  • 2021-12-05
  • 2021-10-20
  • 2022-12-23
猜你喜欢
  • 2021-04-20
  • 2022-01-14
  • 2021-11-26
  • 2021-06-10
  • 2022-12-23
  • 2021-05-09
  • 2022-01-31
相关资源
相似解决方案