zoukankan      html  css  js  c++  java
  • java 继承extends 的相关知识点

     java只有单继承,不能多继承

    • 子类只能继承父类的非私有成员(成员变量、成员方法)
    • 子类不能继承父类的构造方法,但是可以通过super关键字访问父类的构造方法
    • 继承 要体现子类父类的 继承关系, ”is a“

    当子类和父类有同名函数或变量,采用就近原则,子类有就不用父类的


     java 构造器的 构造方法调用顺序:

      构造方法的第一句总是: super(...) 来调用父类对应的构造方法。 所以流程上就是:先向上追溯到 Object 类,然后再一次向下执行类的初始化块和构造方法。直到当前子类


    this/super 

    采用 this 关键字是为了解决实例变量(private String name)和局部变量(setName(String name)中的name变量)之间发生的同名的冲突

    this:代表当前对象的引用,谁来调用我,我就代表谁

    super:代表当前对象父类的引用

     

    父类没有无参构造方法,子类的构造函数中
      super()

      this()

    注意:super(...) 或者 this(...) 必须出现在构造方法的第一条语句上


    子类中所有的构造方法默认都会访问父类的无参构造方法

      因为子类会继承父类中的数据,可能还会使用父类的数据,所以要先完成父类数据的初始化

     

     1 class Test2_Extends {
     2     public static void main(String[] args) {
     3         Zi z = new Zi();
     4     }
     5     /*
     6     1,jvm调用了main方法,main进栈
     7     2,遇到Zi z = new Zi();会先将Fu.class和Zi.class分别加载进内存,再创建对象,当Fu.class加载进内存
     8     父类的静态代码块会随着Fu.class一起加载,当Zi.class加载进内存,子类的静态代码块会随着Zi.class一起加载
     9     第一个输出,静态代码块Fu,第二个输出静态代码块Zi
    10     3,走Zi类的构造方法,因为java中是分层初始化的,先初始化父类,再初始化子类,所以先走的父类构造,但是在执行
    11     父类构造时,发现父类有构造代码块,构造代码块是优先于构造方法执行的所以
    12     第三个输出构造代码块Fu,第四个输出构造方法Fu
    13     4,Fu类初始化结束,子类初始化,第五个输出的是构造代码块Zi,构造方法Zi
    14     */
    15 }
    16 class Fu {
    17     static {
    18         System.out.println("静态代码块Fu");
    19     }
    20 
    21     {
    22         System.out.println("构造代码块Fu");
    23     }
    24 
    25     public Fu() {
    26         System.out.println("构造方法Fu");
    27     }
    28 }
    29 
    30 class Zi extends Fu {
    31     static {
    32         System.out.println("静态代码块Zi");
    33     }
    34 
    35     {
    36         System.out.println("构造代码块Zi");
    37     }
    38 
    39     public Zi() {
    40         System.out.println("构造方法Zi");
    41     }
    42 }

    最后的输出如下:

  • 相关阅读:
    让c#多点代码段
    SNMP OID介绍
    jsp+servlet+Tomcat+mysql实现用户注册、登录、查看、修改实例之——用户注册
    html+js图片切换示例
    jsp+servlet+Tomcat+mysql实现用户注册、登录、查看、修改实例之——数据库设计
    jsp+servlet+Tomcat+mysql实现用户注册、登录、查看、修改实例之——用户登录
    jsp+servlet+Tomcat+mysql实现用户注册、登录、查看、修改实例之——用户列表显示
    html+js实现城市联动、日期联动示例
    javascript实现文字图片滚动示例
    转载的一份asp.net面试题
  • 原文地址:https://www.cnblogs.com/gaoyang666/p/11077957.html
Copyright © 2011-2022 走看看