① java中方法重载和构造方法的区别
方法重载就是同一个类中,有多个方法,方法名是一样的,但是形参不一样,调用的时候,程序会根据传入的形参不同,而选择对应的方法。例如void a(){} 和 void a(String b)和void a(int b){}就是重载的三个方法。
构造方法也叫构造器,它也是一种方法,也可以重载,它的方法名与类名相同,不用写返回值,也不用加void。例如
class a{
public a(){}
}
另外构造器是在创建此类的对象的时候就会调用的,它的作用是初始化类的对象。 如果你没有为类写构造器,JAVA虚拟机自动为类添加一个无参数的构造器,只是你看不到。
② java中构造函数可被覆盖么
您好,提问者:
1、构造函数可以被重载。
2、构造函数不可以被覆盖(更不可覆盖父类的构造函数)。
3、构造函数不可以被重写,两个相同参数的构造函数是不允许的。
③ .Java中,什么是构造函数什么是构造函数重载什么是复制构造函数
当新对象被创建的时候,构造函数会被调用。每一个类都有构造函数。在程序员没有给类提供构造函数的情况下,java编译器会为这个类创建一个默认的构造函数。
java中构造函数重载和方法重载很相似。可以为一个类创建多个构造函数。每一个构造函数必须有它自己唯一的参数列表。
java不支持像c++中那样的复制构造函数,这个不同点是因为如果你不自己写构造函数的情况下,java不会创建默认的复制构造函数。
④ Java函数重载只适用于构造函数吗一般的类的方法可以重载吗
方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。一般的方法完全可以重载。
同时注意和重写的区别,重写就是在子类中把父类本身有的方法重新写一遍,在方法名,参数列表,返回类型(包括子类中方法的返回值是父类中方法返回值的子类时)都相同的情况下, 对方法体进行修改或重写。
⑤ java重载构造函数,无参数的原方法必须写么
SubClass(int n) {
//super();
System.out.println("SubClass(" + n + ")");
this.n = n;
}
你在SubClass类里这样写的 super(); 这个意义是调用父类无参数的构造器,其实这一句你可以不用写。一般子类都会默认调用父类无参数的构造器,但是如果没给父类写一个对子类可见的默认无参数构造器的话,就必须在子类的构造器里显式调用父类的 含参数的构造器.
因为java创建对象,总是要先要从父类开始创建,因为只有父才有子嘛对不对?
你在代码里是没有创建它不错,但是JAVA的机制就是从父类创建开始,而且JAVA里任何一个父类都是继承自java.lang.Object的,它是所有类的基类,JAVA总是从创建这个类开始,然后再一个个向下建立子类
⑥ java中,方法重载和构造器重载一样吗
在使用new创建对象时,Java会根据提供的参数来决定构建哪一个构造器。比如在构建neZha时,我们提供了两个参数: 整数150和字符串"shit",这对应第二个构建方法的参数列表,所以Java会调用第二个构建方法。
在Java中,Java会同时根据方法名和参数列表来决定所要调用的方法,这叫做方法重载(method overloading)。构建方法可以进行重载,普通方法也可以重载,比如下面的breath()方法:
public class Test
{
public static void main(String[] args)
{
Human aPerson = new Human();
aPerson.breath(10);
}
}
class Human
{
/**
* breath() 1
*/
void breath()
{
System.out.println("hu...hu...");
}
/**
* breath() 2
*/
void breath(int rep)
{
int i;
for(i = 0; i < rep; i++) {
System.out.println("lu...lu...");
}
}
int height;
}
运行结果:
lu...lu...
lu...lu...
lu...lu...
lu...lu...
lu...lu...
lu...lu...
lu...lu...
lu...lu...
lu...lu...
lu...lu...
可以看到,由于在调用的时候提供了一个参数: 整数10,所以调用的是参数列表与之相符的第二个breath()方法。
⑦ Java中构造函数重载,一个构造函数是private一个是public,那这个类还可以new吗
答案是private修饰的构造函数是不可以new的 ;public修饰的构造函数是可以new 的
举例如下:
1、定义一个类Constructor 无参和有参构造分别public 、private修饰
package BaiKnows;
public class Constructor {
private int x=1;
public Constructor() {
System.out.println(" 无参是有构造函数");
}
private Constructor(int x) {
this.x=x;
System.out.println("带参共有构造函数 X="+x);
}
}
2、从新定义测试类:
package BaiKnows;
public class ConstructorTest {
public static void main(String[] args) {
Constructor con = new Constructor();//这是可以的
//Constructor con = new Constructor(20);这不可以
}
}
⑧ .Java中,什么是构造函数什么是构造函数重载什么是复制构造函数
创建对象的时候(一般都是new 一个对象,也有比如单例模式给一个方法,其实内部还是new),会调用构造方法,构造方法名和类名一致,默认的构造方式是无参数的方法,如public User(){}
再说下构造方法重载,重载的意思就是方法名相同,参数列表不同,如 public User(String id){ this.id = id;}
或者多个参数
public User(String id,String username){ this.id = id; this.username=username;}
java 不支持复制构造方法,就是没有复制构造方法这一说
⑨ JAVA中 构造函数可以重载 C#中呢
Java中的构造函数可以重载,C#中的也可以。它们都是面向对象语言,面向对象语言的特点就是封装,继承和多态,其中重载也属于多态的一个方面。