Java 中的构造方法

Posted Evai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 中的构造方法相关的知识,希望对你有一定的参考价值。

首先创建一个Transport类,定义好类的属性和方法,并且写好构造方法,先看下无参数的构造方法:

public class Transport {
    //名字
    public String name;
    //运输类型
    public String type;

    public void todo()
    {
        System.out.println("交通工具可以载人载物");
    }
    public Transport()
    {
        System.out.println("无参数的构造方法执行了");
    }
}

接着实例化Transport类:

public static void main(String[] args)
{
    Transport Plane = new Transport(); //输出 无参数的构造方法执行了
}

再来看下有参数的构造方法:

public Transport(String myName, String myType)
    {
        name = myName;
        type = myType;
        System.out.println("有参数的构造方法执行了,参数:"+name+","+type);
    }

实例化输出:

public static void main(String[] args)
{
    Transport Plane = new Transport("飞机", "空运"); //有参数的构造方法执行了,参数:飞机,空运
}

如果父类是带参数的构造方法子类也必须和父类一样使用带参数的构造方法并使用super()方法调用父类的构造函数,子类继承父类并调用父类属性和方法:

public class Plane extends Transport {public void todo()
    {
        System.out.println(name+"是最快的交通工具");
    }
    public Plane(String myName, String myType)
    {
        super(myName,myType);
    }
    public void test()
    {
        super.todo();
    }
}

实例化输出:

public static void main(String[] args)
{
    Plane plane = new Plane("飞机", "空运");  //这里执行的是super(myName,myType),输出 有参数的构造方法执行了,参数:飞机,空运
        plane.todo(); //飞机是最快的交通工具
        plane.test(); //交通工具可以载人载物
}
//输出结果为:

有参数的构造方法执行了,参数:飞机,空运
子类实例化参数:飞机空运300
飞机是最快的交通工具
交通工具可以载人载物

总之,子类如果有自己的构造方法,它的参数不能少于父类的参数,但是可以添加子类自己新的构造参数,如:

public Plane(String myName, String myType, int speed)
    {
        super(myName,myType);
        System.out.println("子类实例化参数:"+myName+myType+speed);
    }
Plane plane = new Plane("飞机", "空运", 300);

有参数的构造方法执行了,参数:飞机,空运
子类实例化参数:飞机空运300

 




以上是关于Java 中的构造方法的主要内容,如果未能解决你的问题,请参考以下文章

java中的构造方法

创建片段而不从 java 代码实例化它

134Java中的构造方法和构造块

为啥要避免片段中的非默认构造函数?

创建一个叫做机动车的类: 属性:车牌号(String),车速(int),载重量(double) 功能:加速(车速自增)减速(车速自减)修改车牌号,查询车的载重量。 编写两个构造方法:一个没有(代码片段

Java如何快速构造JSON字符串