首页 > 其他分享 >动手动脑10.7号

动手动脑10.7号

时间:2022-10-14 20:13:48浏览次数:71  
标签:初始化 调用 10.7 构造方法 子类 动脑 动手 父类 构造函数

 

调用关系:

如果一个类具有父类,在类加载的时候都是先加载父类的方法(相当于构造了一个父类对象)

子类继承父类后,获取到父类的属性和方法,这些属性和方法在使用前必须先初始化,所以须先调用父类的构造器进行初始化。在子类构造器的第一行会隐式的调用 super();,即调用父类的构造器

如果父类中没有定义空参的构造器,则必须在子类的构造器的第一行显示的调用super(参数); ,以调用父类中构造器

如果子类中构造器的第一行写了this();,则就隐式的super();会消失,因为super()和this()都只能在构造器的第一行定义

结论:  通过 super 调用基类构造方法,必须是子类构造方法中的第一个语句。

二.思考:为什么子类的构造方法在运行之前,必须调用父类的构造方法?能不能反过来?为什么不能反过来?

构造函数(constructor)是一种特殊的方法 。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中 。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。构造函数的功能主要用于在类的对象创建时定义初始化的状态。所以说构造函数的作用,简单来说就是初始化,初始化一个新建的对象。

1.有父才会有子,即便父类什么东西都没有,也必须调父类的构造方法,这样符合现实的生命传承关系,符合 Java 的面向对象和继承的思想
2.如果父类有一些变量,那么调用父类的构造方法,就可以通知 JVM 把父类加载进内存,从而对父类的变量进行初始化赋值
3.如果父类有一些方法,这些方法子类对象是有可能需要用到的,所以这些方法也必须提前放进子类对象中或者方法区中,那就必须把父类加载进内存中,因此调用父类的构造方法就可以通过JVM 加载父类到内存中
三.为什么要用多态?它有什么好处?

当你要修改程序并扩充系统时,你需要修改的地方较少,对其它部分代码的影响较小,千万不要小看这两个"较"字!程序规模越大,其优势就越突出。

 

 

 

 

 

 

标签:初始化,调用,10.7,构造方法,子类,动脑,动手,父类,构造函数
From: https://www.cnblogs.com/psh888/p/16791857.html

相关文章

  • 动手动脑--super关键字
    请自行编写代码测试以下特性(动手动脑):在子类中,若要调用父类中被覆盖的方法,可以使用super关键字。package TestInherits;public class Person{  Stringname; ......
  • 动手动脑--代码测试
     1.左边的程序运行结果是什么?  2.你如何解释会得到这样的输出?(1):当子类和父类拥有同名方法时,并且让一个父类变量引用一个子类对象时,调用哪个方法由自己的真实类型......
  • 动手动脑--测试
    下列语句哪一个将引起编译错误?为什么?哪一个会引起运行时错误?为什么?m=d;d=m;d=(Dog)m;d=c;c=(Cat)m;我认为第一句不出错,可以用子类给父类赋值,因为子类里有父类里......
  • 动手动脑--多态小结
      通过在编程中应用多态,可以使我们的代码具有更强的适用性。当需求变化时,多态特性可以帮助我们将需要改动的地方减少到最低限度。多态编程有两种主要形式:(1)继承多态:示......
  • 动手动脑--
    1.运行 TestInherits.java示例,观察输出,注意总结父类与子类之间构造方法的调用关系修改Parent构造方法的代码,显式调用GrandParent的另一个构造函数,注意这句调用代码是否是......
  • 动手动脑--构造方法
    为什么子类的构造方法在运行之前,必须调用父类的构造方法?能不能反过来?为什么?构造函数是一种特殊的方法。主要用来在创建对象时初始化对象,即为对象成员变量赋初始值,总与ne......
  • 动手实验:继承条件下的构造方法调用
    -子类自动拥有父类声明为public和protected的成员,这就是继承特性的体现之一。-public:外界可自由访问-private:外界不可访问-protected:同一包中的子类都可以访问,另一包......
  • 动手动脑
     1.运行 TestInherits.java示例,观察输出,注意总结父类与子类之间构造方法的调用关系修改Parent构造方法的代码,显式调用GrandParent的另一个构造函数,注意这句调用代码是......
  • 动手动脑10.7
    1.动手实验1:运行 TestInherits.java 示例,观察输出,注意总结父类与子类之间构造方法的调用关系修改Parent构造方法的代码,显式调用GrandParent的另一个构造函数,注意这句调用......
  • 10.7 上课问题的讨论与思考
    一、动手实验:继承条件下的构造方法调用继承的语法:class子类名extends父类名{......}  父类(parentclass)和超类(superclass)两者通常指直接上级基类(baseclass)......