Android中比较常见的Java super关键字

 更新时间:2021年06月06日 17:05:30   作者:xu佳佳  
这篇文章主要为大家介绍了Android中比较常见的Java super关键字,具有一定的学习参考价值,感兴趣的小伙伴们可以参考一下

super在android中比较常见,没有java基础也并不理解,所以空出时间学习了一下。

在Java类中使用super来引用基类的成分,比较简单,示例如下:

class FatherClass{ 
  public int value; 
  public void f(){ 
    value=100; 
    System.out.println 
    ("FatherClass.value:"+value); 
  } 
} 
 
 
class ChildClass extends FatherClass{ 
  public int value; 
  public void f(){ 
    super.f(); 
    value=200; 
    System.out.println 
    ("ChildClass.value:"+value); 
    System.out.println(value); 
    System.out.println(super.value); 
  } 
} 
 
 
public class test1 { 
  public static void main(String[] args){ 
    ChildClass cc=new ChildClass(); 
    cc.f(); 
  } 
} 

最终输出的结果是:

FatherClass.value:100
ChildClass.value:200
200
100

另外继承中的构造也是用到了super,具体规则如下:

1、子类的构造过程中必须调用其基类的构造方法。

2、子类可以在自己的构造方法中使用super(argument_list)调用基类的构造方法。

3、如果子类的构造方法中没有显示的调用基类的构造方法,则系统默认调用基类的无参数构造方法。

4、如果子类构造方法中既没有显示调用基类构造方法,而基类又没有无参数的构造方法,则编译出错。

示例如下:(此处最好可以自己试验一下)

class SuperClass{ 
  private int n; 
   
  SuperClass(){ 
    System.out.println("调用SuperClass()"); 
  } 
  SuperClass(int n){ 
      System.out.println("调用SuperClass("+n+")"); 
    } 
} 
 
class SubClass extends SuperClass{ 
  private int n; 
   
  SubClass(int n){ 
     
    //当子类的构造方法中没有写super的时候,系统默认的调用父类的没有参数的构造方法 
    //相当于此处写了如下: 
    //super(); 
     
    System.out.println("调用SuberClass("+n+")"); 
    this.n=n; 
  } 
   
  SubClass(){ 
    super(300); 
    //在子类构造过程当中必须调用父类构造方法,并且super必须写在第一句(先有爸爸再有儿子) 
     
    System.out.println("调用SubClass()"); 
  } 
} 
public class test2 { 
  public static void main(String[] args){ 
    SubClass sc1=new SubClass(); 
     
    SubClass sc2=new SubClass(400); 
     
  } 
} 

最终结果为:

调用SuperClass(300)
调用SubClass()
调用SuperClass()
调用SuberClass(400)

以上就是本文的全部内容,希望对大家的学习有所帮助。

相关文章

  • 解决springboot项目不配置数据源启动报错问题

    解决springboot项目不配置数据源启动报错问题

    这篇文章主要介绍了解决springboot项目不配置数据源启动报错问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • SpringMVC结构简介及常用注解汇总

    SpringMVC结构简介及常用注解汇总

    这篇文章主要介绍了SpringMVC结构简介及常用注解汇总,帮助大家更好的理解和学习使用SpringMVC,感兴趣的朋友可以了解下
    2021-03-03
  • elasticsearch 8.2.3 安装及springboot简单使用

    elasticsearch 8.2.3 安装及springboot简单使用

    这篇文章主要介绍了elasticsearch 8.2.3 安装及springboot简单使用,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06
  • 一步步教你JAVA如何优化Elastic Search

    一步步教你JAVA如何优化Elastic Search

    想要榨干Java操作Elasticsearch的所有性能潜力?本指南将一步步教你如何优化Java与Elasticsearch的交互!从此,提升ES查询速度、降低资源消耗不再是难题,赶快一起来探索Java Elasticsearch优化的秘诀吧!
    2024-01-01
  • java中InputStream获取字节大小相关方法详解

    java中InputStream获取字节大小相关方法详解

    这篇文章主要给大家介绍了关于java中InputStream获取字节大小相关方法的相关资料,在Java中要实现读取文件大小,可以使用InputStream来读取文件的内容,并通过获取读取的字节数来得到文件的大小,需要的朋友可以参考下
    2023-11-11
  • maven多profile 打包下 -P参和-D参数的实现

    maven多profile 打包下 -P参和-D参数的实现

    这篇文章主要介绍了maven多profile 打包下 -P参和-D参数的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • SpringAMQP消息队列实战教程

    SpringAMQP消息队列实战教程

    这篇文章主要介绍了SpringAMQP消息队列的相关知识,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧
    2024-02-02
  • 200行Java代码编写一个计算器程序

    200行Java代码编写一个计算器程序

    本篇文章给大家分享的只用200行java代码,实现一个计算器程序,不仅能够计算加减乘除,还能够匹配小括号。实现代码超简单,需要的朋友参考下吧
    2017-12-12
  • 项目为什么引入log4j而不是logback代码

    项目为什么引入log4j而不是logback代码

    这篇文章主要介绍了项目为什么引入log4j而不是logback代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • SpringMVC解析post请求参数详解

    SpringMVC解析post请求参数详解

    今天小编就为大家分享一篇解决SpringMVC接收不到ajaxPOST参数的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-08-08

最新评论