Java super与this
一、super()与this()
1、super():
- 只能出现在子类构造器中
- 且必须位于第一行。
- 所有子类构造器默认调用super()方法
- 参数决定使用父类哪一个构造器。
- 若父类没有相应的构造器,则报错。
2、this():
- 只能出现在本类的构造器中
- 且必须位于第一行
- 用于调用本类中其他构造方法
- 不能与super()同时出现在一个构造方法中
二、super、this关键字
1、this
- 指向当前对象本身
- 形参与成员名重名,用于区分
- this()
2、super
- 指向本类的引用
- 子类的成员变量或方法与父类中的成员变量或方法重名,用于区分
- super()
三、特别说明
1、子类继承父类所有的属性和方法(构造方法除外;private可以说没有继承,也可以说继承了但是没有访问权限)
2、子类实例化时,先实例化父类再实例化子类自己(先调用父类构造器,再调用子类构造器)
3、在子类中创建构造器时,必须调用父类的构造器(默认调用父类的无参构造器)。
4、static环境中不可在使用this、super关键字
四、代码
public class Demo1 {
static int value = 9; // 注意value是静态的成员变量
public static void main(String[] args) throws Exception {
new Demo1().printValue();
}
private void printValue() {
int value = 69;
System.out.println(this.value);
}
}
结果: 9
Java super与this的更多相关文章
- Java super关键字活用
在实际开发中我们要自定义组件,就需要继承自某个组件类,如果我们自定义的这个组件类也需要像被继承的这个组件类一样,拥有丰富的构造方法. 关键字super的作用就更加显得尤为重要了,你可以在堆砌自己自定义 ...
- java <? super Fruit>与<? extends Fruit>
package Test2016; import java.util.ArrayList; import java.util.List; public class Test2016 { public ...
- Java super与this用法解析
1. 子类的构造函数如果要引用super的话,必须把super放在函数的首位. class Base { Base() { System.out.println("Base" ...
- java super关键字
子类用super操作被隐藏的成员变量和方法 Example5_7.java class Sum { int n; float f() { float sum=0; for(int i=1;i<= ...
- java super和this总结
今天群里有人问我怎么复写父类的构造函数,我当时听错了以为是一般方法,然后就对他说只要同名就可以,然后他告诉我错了,我再仔细看,才知道他问的是复写 父类的构造方法,其实自己也不知道子类能不能复写父类的构 ...
- java super的用法
通过用static来定义方法或成员,从某种程度上可以说它类似于C语言中的全局函数和全局变量. this&super这两个关键字的意义和用法. 在Java中,this通常指当前对象,super则 ...
- [Java学习] Java super关键字
super 关键字与 this 类似,this 用来表示当前类的实例,super 用来表示父类. super 可以用在子类中,通过点号(.)来获取父类的成员变量和方法.super 也可以用在子类的子类 ...
- Java super和this
this this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针. this的用法在java中大体可以分为3种: 1.普通的直接引用 这种就不用讲了,this相当于是指向当前对象本 ...
- 四. Java继承和多态2. Java super关键字
super 关键字与 this 类似,this 用来表示当前类的实例,super 用来表示父类. super 可以用在子类中,通过点号(.)来获取父类的成员变量和方法.super 也可以用在子类的子类 ...
- java——super关键字、final关键字、throws关键字、访问控制
super关键字: 当父类被重写之后,子类对象无法访问父类被重写的方法,super就是为了解决这个问题: 1.使用super关键字访问父类的成员变量和成员方法: super.成员变量 super.成员 ...
随机推荐
- CDN之简介
1. 什么是 CDN? 来自 <什么是 CDN?> CDN(内容交付网络)是一种高度分布式服务器平台,为交付 Web 应用程序.流媒体等内容专门优化.服务器网络分布于众多物理和网络位置,对 ...
- 影响mysql性能的因素
一.服务器硬件. CPU不够快,内存不够多,磁盘IO太慢. 对于计算密集型的应用,CPU越可能去影响系统的性能,此时,CPU和内存将越成为系统的瓶颈. 当热数据大小远远超过系统可用内存大小时,IO资源 ...
- gitlib的安装
下载ruby yum -y install gcc gcc-c++ make wget https://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.9.tar. ...
- Node.js express模块 http服务
var express = require('express'); var app = express(); app.get('/', function(req, res){ res.send('he ...
- PCL中有哪些可用的PointT类型(1)
博客转载自:http://www.pclcn.org/study/shownews.php?lang=cn&id=266 为了涵盖能想到的所有可能的情况,PCL中定义了大量的point类型.下 ...
- Google Protocol Buffers 快速入门(带生成C#源码的方法)
Google Protocol Buffers是google出品的一个协议生成工具,特点就是跨平台,效率高,速度快,对我们自己的程序定义和使用私有协议很有帮助. Protocol Buffers入门: ...
- ajax基础------备忘
1:register.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" ...
- eclipse中Maven web项目的目录结构浅析
刚开始接触maven web项目的时候,相信很多人都会被它的目录结构迷惑. 为了避免初学者遇到像我一样的困扰,我就从一个纯初学者的视角,来分析一下这个东西. 1,比如说,我们拿一个常见的目录结构来看, ...
- Redis 部署安装
一.Redis介绍 Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更多 ...
- 树莓派实现摄像头监控(使用motion和mjpg-streamer)
购买raspBerryCarmen,大概20元, 启动树莓派,安装: `sudo apt install motion` 配置/etc/motion/motion.conf, `sudo vim /e ...