码迷,mamicode.com
首页 > 其他好文 > 详细

Homework1_3015218130_许鹏程

时间:2018-03-12 22:52:48      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:stat   esc   ext   color   static   erro   没有   des   public   

Homework 1

Briefly describe an error from my past projects.

很久以前的一个项目,忘了具体的代码,以下是error大致内容:

 

 1 class Father{
 2      String s;
 3 
 4      public Father(String s){
 5          this.s = s;
 6      }
 7 }
 8 
 9 public class Kid extends Father{
10       int x = 200;
11 
12       public Kid(String s){
13       }
14 
15       public static void main(String[] args){
16           Kid s = new Kid;
17       }
18 }

 

然后12行报错,导致整个项目无法继续。

后来通过上网查找,才知道错误原因:

原来子类的无论是无参构造方法还是有参构造方法,都会默认调用父类的无参构造方法;而由于父类已经定义了有参构造方法,无默认无参构造方法,所以编译器报错。

所以解决方式是需要在父类中定义一个无参构造方法。

这个小错误之所以让人印象深刻,是因为在我们学习构造方法时,一般只会掌握“如果一个类没有定义构造方法,编译器会默认插入一个无参数的构造方法;但是如果一个构造方法在父类中已定义,在这种情况,编译器是不会自动插入一个默认的无参构造方法”,而回忽视上面提到的问题。这也是我第一次知道构造方法还有这样的性质,所以印象深刻。

Homework1_3015218130_许鹏程

标签:stat   esc   ext   color   static   erro   没有   des   public   

原文地址:https://www.cnblogs.com/picheng/p/8552207.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!