Java的this关键字在继承时的作用
1、this.属性
class A{
int a = 10;
public void play(){
System.out.println(this.a);
}
}
class B extends A{
private int a = 100;
/* public void play(){
System.out.println(this.a);
System.out.println(super.a);
}*/
}
public class test{
public static void main(String [] args){
A a = new B();
a.play();
}
}
结果:

发现this是从当前类层次开始,向上查找。
2、this.方法
class A{
int a = 10;
public void play(){
System.out.println(this.a);
}
public void fun(){
this.play();
}
}
class B extends A{
private int a = 100;
public void play(){
System.out.println(this.a);
}
}
public class test{
public static void main(String [] args){
A a = new B();
a.play();
}
}
结果:

发现this是从对象所属的子类开始自下而上的查找方法。
Java的this关键字在继承时的作用的更多相关文章
- java中static关键字的继承问题
结论:java中静态属性和静态方法可以被继承,但是没有被重写(overwrite)而是被隐藏. 原因: 1). 静态方法和属性是属于类的,调用的时候直接通过类名.方法名完成对,不需要继承机制及可以调用 ...
- Java基础(basis)-----关键字this和super的作用
1.关键字this 可以用来修饰属性.方法.构造器:this理解为当前对象或当前正在创建的对象 局部变量与成员变量同名,成员变量被屏蔽,用"this.成员变量"的方式访问成员变量 ...
- Java基础(basis)-----关键字final和static的作用
1.关键字final final修饰类:这个类就不能被继承 final修饰方法:不能被重写 final修饰属性:此属性就是一个常量,一旦初始化后,不可再被赋值.习惯 ...
- JAVA中方法和变量在继承中的覆盖和隐藏(一)
我们知道,在JAVA中,子类可以继承父类,如果子类声明的方法与父类有重名的情况怎么办,大伙儿都知道要是重写,但是实际上这又分为两种情况,就是方法和变量在继承时的覆盖和隐藏问题,这些概念性的东西看似无聊 ...
- JAVA中方法和变量在继承中的覆盖和隐藏
出处:http://renyanwei.iteye.com/blog/258304 我们知道,在JAVA中,子类可以继承父类,如果子类声明的方法与父类有重名的情况怎么办,大伙儿都知道要是重写,但是实际 ...
- java中static关键字的作用
java中static关键字主要有两种作用: 第一:为某特定数据类型或对象分配单一的存储空间,而与创建对象的个数无关. 第二,实现某个方法或属性与类而不是对象关联在一起 简单来说,在Java语言中,s ...
- JAVA继承时this和super关键字
JAVA继承时this和super关键字 本文主要讨论在方法前使用this或super关键字时,编译器在什么地方查找对应的函数. 在子类中指定this关键字.首先在本类中查找,如果本类中找不到,再在父 ...
- Java继承时的初始化顺序
Java程序在启动和运行时,需要首先完成初始化的工作.在涉及到继承.static成员变量等因素时,初始化的顺序就复杂起来.下面以一个例子说明继承时的Java初始化顺序. 例子: class Insec ...
- JAVA中继承时方法的重载(overload)与重写/覆写(override)
JAVA继承时方法的重载(overload)与重写/覆写(override) 重载-Override 函数的方法参数个数或类型不一致,称为方法的重载. 从含义上说,只要求参数的个数或参数的类型不一致就 ...
随机推荐
- jmeter启动报错
# ./jmeter-server Using local port: 1099Server failed to start: java.rmi.server.ExportException: Lis ...
- 微信小程序问题---数据传输长度为 1275870 已经超过最大长度 1048576
开发微信小程序时,遇到数据传输长度为 1095538 已经超过最大长度 1048576的问题. 这是setData时操作数据过大导致,一般出现在请求返回数据过大,我们又将这个数据一次性用setData ...
- weui复选框无法传值
//原来的反了 function changeState (ele) { if(ele.checked){ ele.setAttribute('checked','checked') console. ...
- 吐血Eclipse Maven Selenium TestNG的各种坑
刚入坑不久,有些是自己知识储备不够造成的,有些...那就是坑 在eclipse里面新建maven项目,然后添加testgn依赖,不多说,这个简单. 第一个坑: 然后在src/test/java这个文件 ...
- ThreadPoolExecutor源码详解
ExecutorService使用线程池中可用的线程执行每个提交的任务,这些线程通常都是使用工厂方法配置 线程池解决两种不同的问题:提高处理大量异步任务的性能(通过减少每个线程的唤醒时间) 提供一种管 ...
- 生成器函数yield
先看一个栗子: # -*- coding:UTF-8 -*- __autor__ = 'zhouli' __date__ = '2018/12/6 21:08' # 生成器函数,函数里只要有yield ...
- MAC配置VIM环境
Ruby开发环境配置 ~/.vimrc set nocompatible " be iMproved, required filetype off " required set r ...
- 使用SignalR进行实时通信
http://www.cnblogs.com/lonelyxmas/tag/%E4%B8%80%E6%AD%A5%E4%B8%80%E6%AD%A5%E5%AD%A6%E4%B9%A0SignalR% ...
- navicat使用ssh登录mysql报错:expected key exchange group packet from server
转载自:https://blog.csdn.net/enweitech/article/details/80677374 解决方法: vim /etc/ssh/sshd_config shift+g ...
- new delate he typedef的含义
new: new 类型[初值] 如: new int ; //开辟一个存放整数的存储空间,返回一个指向该存储空间的 ...