`
zy19880423
  • 浏览: 27779 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

java子类与父类构造器调用

    博客分类:
  • Java
阅读更多

class Super {
    int i=0;
    Super(String s){
       i=10;
    }
 }
 public class Child extends Super{
     int j=0;
     Child(String s){
         //super("a');

         j=10;
     }
    public static void main(String[] args) {
       Child c=new Child("s");
    }

}

以上发生编译错误.

分析:当一个类中指定了一个构造器后,系统就不会再为其创建一个默认的无参构造器。另外,在执行子类构造器时,如果未指定调用的父类构造器时,系统会自动调用父类的无参构造器.如果指定调用了父类的构造器则不会再调用无参构造器.

当执行子类Child类的构造器时由于未调用父类的构造器,所以系统自动调用父类无参构造器,但是父类无参构造器得不到调用,因为父类中不存在此构造器.因此发生编译错误

分享到:
评论

相关推荐

    JAVA经典继承与父类调用 geter、seter访问器 构造器

    代码中设计了各个类的基类,设置私有成员变量,利用构造器对成员变量初始化,用geter、seter访问器设置、获取成员变量的值。继承基类并创建对象,在子类中调用父类方法。

    Java中子类和父类之间的调用关系

     4、编译器会在每个构造方法的第一行隐式添加父类的默认无参构造器,即添加super()。  新手容易犯的错误: class Employee extends Object {  public Employee(int id) {  } } class Teacher extend

    super和this之间的区别.docx

    因为一般子类构造器的首行会默认调用父类空构造的问题,所以建议模板类都至少存在一个空构造 super()必须在首行调用使用才行 2.区分子父类同名问题 如果当子父类中存在同名成员的时候,子类中使用同名...

    Java开发技术大全(500个源代码).

    invokeConstructor.java 利用反射机制调用构造器 invokeMethod.java 利用反射机制调用成员方法 listConstructors.java 利用反射机制获取构造器列表 listFields.java 利用反射机制获取成员属性列表 listMethods....

    10Java对象的内存布局1

    // Foo 类构造器会调用其父类 Object 的构造器1 invokespecial java.lang.Object() [8]然后,子类的构造器需要调用

    【04-面向对象(上)】

    •如果子类构造器没有显式使用super调用父类构造器;子类构造器默认会调用父类无参数的构造器。 •创建一个子类实例时,总会先调用最顶层父类的构造器。 多态性 •Java 引用变量有两个类型:一个是编译时的...

    Java复习题及答案

    3、所有类至少有一个构造器,构造器用来初始化类的新对象,构造器与类同名,返回类型只能为void。 ( ) 4、包是按照目录、子目录存放的,可以在程序中用package定义包,若没有package一行,则表示该文件中的类不...

    疯狂JAVA讲义

    5.6.4 调用父类构造器 148 学生提问:为什么我创建Java对象时从未感觉到java.lang.Object的构造器被调用过? 150 5.7 多态 151 5.7.1 多态性 151 5.7.2 引用变量的强制类型转换 152 5.7.3 instanceof运算符 154...

    java 程序设计试题及答案(8套合辑)

    A、因为构造方法名与类名必须相同,构造方法在创建对象时被执行。 B、构造方法是给对象赋初值,所以没有返回值,必须用void来声明。 C、构造方法不能被程序调用,也不可以重载。 D、一个类只允许有一个构造方法。...

    JAVA面试题最全集

    修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被...

    java 程序设计 期中考试.doc

    8.静态初始化器是在其所属的类加载内存时由系统自动调用执行. ( √ ) 9.在Java中对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的新对象. ( × ) 10.只能利用Thread类的...

    java初学者必看

    8.1 父类和子类 8.2 super构造方法调用 8.3 封装和继承 8.4 使用继承 8.4.1 Object类 8.4.2 定义equals方法 8.5 关于设计好继承的几点建议 8.6 实例:一卡通类的继承 8.6.1 构造方法 8.6.2 setter方法 ...

    java面试800题

    (2)调用父类构造函数; (3)按顺序分别调用类成员变量和实例成员变量的初始化表达式; (4)调用本身构造函数。" Q0053 "Public class Servlet extends HttpServlet{ int i; doget(){ i++; out.print(i); ...

    计算机(专升本)Java程序设计复习资料.doc

    接口比抽象类更加抽象,因为抽象类中可以定义构造器,可以有抽象方法和具体方法, 而接口中不能定义构造器而且其中的方法全部都是抽象方法。 抽象类中的成员可以是private、默认、protected、public的,而接口中的...

    java编程常见问题

    假设有类A和B(A不是B的父类或子类),O是A的实例,那么当强制将O构造为类B的实例时抛出该异常。该异常经常被称为强制类型转换异常。 45.java.lang.ClassNotFoundException 找不到类异常。当应用试图根据字符串形式...

    java 面试题 总结

    但通常情况下,由于Java Bean是被容器所创建(如Tomcat)的,所以Java Bean应具有一个无参的构造器,另外,通常Java Bean还要实现Serializable接口用于实现Bean的持久性。Java Bean实际上相当于微软COM模型中的本地...

    Java 语言基础 —— 非常符合中国人习惯的Java基础教程手册

    p1 调用缺省的构造方法(即没有参数),p2 则调用带参数的构造方法。p1、p2 分别对 应于不同的内存空间,它们的值是不同的,可以完全独立地分别对它们进行操作。虽 然 new 运算符返回对一个对象的引用,但与 C、C++中的...

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    10.2.4 调用父类中的构造方法 256 10.2.5 对象也会“变脸” 258 10.2.6 遵守语法,正确“变脸” 262 10.3 覆盖——与继承如影随形 264 10.3.1 当方法不再通用 264 10.3.2 覆盖——让众口不再难调 265 10.3.3 ...

Global site tag (gtag.js) - Google Analytics