服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服务器之家 - 编程语言 - JAVA教程 - Android中比较常见的Java super关键字

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

2020-03-22 13:05xu佳佳 JAVA教程

这篇文章主要为大家介绍了Android中比较常见的Java super关键字,感兴趣的小伙伴们可以参考一下

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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();
  }
}

最终输出的结果是:

?
1
2
3
4
FatherClass.value:100
ChildClass.value:200
200
100

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

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

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

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

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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);
     
  }
}

最终结果为:

?
1
2
3
4
调用SuperClass(300)
调用SubClass()
调用SuperClass()
调用SuberClass(400)

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

延伸 · 阅读

精彩推荐
  • JAVA教程举例讲解Java中的多线程编程

    举例讲解Java中的多线程编程

    这篇文章主要介绍了举例讲解Java中的多线程编程,线程是Java学习中的重要知识,需要的朋友可以参考下 ...

    goldensun3152020-01-07
  • JAVA教程怎么在AVD上安装apk软件

    怎么在AVD上安装apk软件

    执行 Windows 开始菜单 => 所有程序 => 附件 => 命令提示符 或通过 Win+R 组合键调出 运行 对话框输入cmd 单击确定即可 ...

    java教程网4292019-10-14
  • JAVA教程Java实现洗牌发牌的方法

    Java实现洗牌发牌的方法

    这篇文章主要介绍了Java实现洗牌发牌的方法,涉及java针对数组的遍历与排序操作相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下 ...

    罪恶的花生2722019-12-29
  • JAVA教程Java中单例模式的7种写法

    Java中单例模式的7种写法

    这篇文章主要介绍了Java中单例模式的7种写法,本文分别给出每种方式的实现代码,需要的朋友可以参考下 ...

    junjie4072019-12-18
  • JAVA教程Java连接并操作Sedna XML数据库的方法

    Java连接并操作Sedna XML数据库的方法

    这篇文章主要介绍了Java连接并操作Sedna XML数据库的方法,较为详细的说明了Sedna XML数据库的原理与功能,并给出了基于java操作Sedna XML数据库的方法,需要的朋...

    红薯4702019-12-24
  • JAVA教程Java简单数组排序(冒泡法)

    Java简单数组排序(冒泡法)

    这篇文章主要介绍了Java简单数组排序,实例分析了基于冒泡法实现数组排序的相关技巧,简单实用,具有一定参考借鉴价值,需要的朋友可以参考下 ...

    hacker08251782020-01-10
  • JAVA教程解决springmvc+mybatis+mysql中文乱码问题

    解决springmvc+mybatis+mysql中文乱码问题

    这篇文章主要介绍了解决java中springmvc+mybatis+mysql中文乱码问题的相关资料,需要的朋友可以参考下 ...

    hebedich4012020-01-03
  • JAVA教程Java编程中的一些常见问题汇总

    Java编程中的一些常见问题汇总

    这篇文章主要介绍了Java编程中的一些常见问题汇总,本文总结的都是一些Java代码中比较典型的错误,需要的朋友可以参考下 ...

    junjie2732019-12-01