Java中 每个类在没有声明构造方法的前提下,会自动生成一个不带参数的构造方法
2011-08-25 14:10
381 查看
每个类在没有声明构造方法的前提下,会自动生成一个不带参数的构造方法,如果类一但声明有构造方法,就不会产生了.证明如下:
例1:
class person { person(){System.out.println("父类-person");} person(int z){} } class student extends person { // student(int x ,int y){super(8);} } class Rt { public static void main(String[]args) { student student_dx=new student();//创建student类的对象 } } //输出结果:父类-person
例2:
class person { person(){System.out.println("父类-person");} person(int z){} } class student extends person { student(int x ,int y){super(8);} } class Rt { public static void main(String[]args) { student student_dx=new student(3,4);//创建student类的对象 } } //没有输出结果
例1说明:student类自动生成student() {super();}(前提是:student类没有声明构造方法的前提下) 'super()'是用来调用父类的构造方法.
例2中的person()方法没有被调用,说明student类没有产生student(){super();}方法.这是因为student类已经声明构造方法,默认的那个不带参数的构造方法就不产生了.
再举例:
class person { person(int z){} } class student extends person { } class Rt { public static void main(String[]args) { student student_dx=new student();//创建student类的对象 } } /*报错: exercise14.java:8: 找不到符号 符号: 构造函数 person() 位置: 类 person class student extends person ^ 1 错误 */
说明:student类自动产生了一个student(){super();},但是由于person类已经声明了构造方法,默认的那个带参数的构造方法没有产生.,所以报错中提到找不到构造函数person()
[align=center] [/align]
相关文章推荐
- Java中 每个类在没有声明构造方法的前提下,会自动生成一个不带参数的构造方法
- 在java语言中为什么有时候构造方法有时要构造一个没有参数的方法
- 2018/01/08JAVA 基础 / 接口与继承:[Q]:若父类Hero提供了一个有参的构造方法,但是没有提供无参的构造方法。子类应该怎么处理?
- 1.首先描述下自定义控件的一般方法: 自定义控件是被创造出来,所以先要复写它三个的构造方法,根据需求决定复写哪个,若没有自定义属性,复写只有一个参数的即可。若有自定义属性,则可以通过obtainSty
- Eclipse4.7基础 快捷键 自动生成有参数的构造方法
- java 声明一个构造方法
- 在Eclipse里利用javah把java代码声明的JNI方法自动生成成C\C++头文件
- MyEclipse中,当我们写一个类实现一个接口时,会自动生成重写该接口的方法,但是,方法的参数提示不够好,是什么原因导致的呢?该如何解决呢?
- Eclipse4.7基础 快捷键 自动生成无参数的构造方法
- Java基础---基础加强---增强for循环、自动拆装箱及享元、枚举的作用、实现带有构造方法、透彻分析反射的基础_Class类、成员变量的反射、数组参数的成员方法进行反射、数组的反射应用
- Java基础---基础加强---增强for循环、自动拆装箱及享元、枚举的作用、实现带有构造方法、透彻分析反射的基础_Class类、成员变量的反射、数组参数的成员方法进行反射、数组的反射应用
- 创建android项目时没有自动生成R.java文件的解决方法
- java中利用反射机制得到一个类的所有构造方法,成员方法机器参数的列表
- java方法能自动生成000到999之间的一个字符
- 为什么Java反射对象必须有一个无参数的构造方法?
- 继续上一篇文章,myibatis传入多参数,有一个list,其中length报错,没有该方法,改为size
- Objective-C,ios,属性声明(property declarations), 自定义属性,自动生成 get 和 set 方法,getter 和 setter
- Java学习笔记2:当构造方法有多个参数时考虑使用Builder
- Java学习笔记——doc文档自动生成方法
- 创建一个直角三角形类(regular triangle)RTriangle类,实现下列接口IShape。两条直角边长作为RTriangle类的私有成员,类中包含参数为直角边的构造方法。