zoukankan      html  css  js  c++  java
  • Android(java)学习笔记60:继承中父类 没有无参构造

    1. 继承中父类 没有无参构造:

     1 package com.himi.test1;
     2 
     3 /*
     4     如果父类没有无参构造方法,那么子类的构造方法会出现什么现象呢?
     5         报错。
     6     如何解决呢?    
     7         A:在父类中加一个无参构造方法
     8         B:通过使用super关键字去显示的调用父类的带参构造方法
     9         C:子类通过this去调用本类的其他构造方法
    10             子类中一定要有一个去访问了父类的构造方法,否则父类数据就没有初始化。
    11             
    12     注意事项:
    13         this(...)或者super(...)必须出现在第一条语句上。
    14         如果不是放在第一条语句上,就可能对父类的数据进行了多次初始化,所以必须放在第一条语句上。
    15 */
    16 class Father {
    17     /*
    18     public Father() {
    19         System.out.println("Father的无参构造方法");
    20     }
    21     */
    22     //如果没有写构造方法,默认有无参构造,这里写了带参构造,无参构造变成了带参构造
    23     public Father(String name) {
    24         System.out.println("Father的带参构造方法");
    25     }
    26 }
    27 
    28 class Son extends Father {
    29     public Son() {
    30         super("随便给");
    31         System.out.println("Son的无参构造方法");
    32         //super("随便给");
    33     }
    34     
    35     public Son(String name) {
    36         //super("随便给");
    37         this();
    38         System.out.println("Son的带参构造方法");
    39     }
    40 }
    41 
    42 public class ExtendDemo2 {
    43     public static void main(String[] args) {
    44         Son s = new Son();
    45         System.out.println("----------------");
    46         Son ss = new Son("林青霞");
    47     }
    48 }

    运行结果:


    这里子类son创建对象的时候,无论它使用无参构造和带参构造,即无论使用new Son(),new Son("林青霞"),这里这些构造方法中默认第一条语句是必须隐式默认是super(),也就是父类的无参构造方法,利用父类的无参构造函数去初始化父类携带的数据,从而提供给子类Son使用。通常父类如果不写构造的话,系统默认父类为无参构造,但是如果父类写了带参构造,那么无参构造就会覆盖掉,这样父类Father()也就没有无参构造了,这样的话前面Son()创建对象时候就会出错。但是也可以显式利用super("name"),调用父类带参构造初始化

  • 相关阅读:
    DNS服务器安全之通过ipset对DNS异常解析流量的源IP地址进行管控
    C# Windows Api的一些方法 封装 以及 常用参数
    Java基础—异常(1)
    Java基础——异常(2)
    vb6 wininet
    vb6转16进制
    Java 中与(&)短路与(&&)以及 或(|)短路或(||)的关系
    关于面向对象的简单总结
    javaScript的基本规范
    关于TCP传输的三次握手四次挥手策略
  • 原文地址:https://www.cnblogs.com/hebao0514/p/4631091.html
Copyright © 2011-2022 走看看