this和super关键字
this关键字:
1.引用成员变量
2.通过this(参数列表)调用类的重载的构造方法
3.返回对象的值:使用return this,来返回某个类的引用。
super关键字:
1.super是一个引用,在子类对象中对父类的引用,用于在子类的方法中调用父类已经被重写的方法
2.当父类的构造方法中有参时,子类的构造方法必须使用super(参数值); 对于父类无参的默认构造器,子类会使用默认的super();,可以不写出来
注:this()和super()之前不能写其他语句
public class Circle {
protected double radius;
public Circle(double r) {
radius=r;
}
public void setr(double radius){
this.radius=radius; //使用this关键字引用成员变量,前面的this.radius指成员变量
}
public double getr(){
return radius;
}
public double getarea(){
return 3.14*radius*radius;
}
}
public class Cylinder extends Circle {
private double length;
public Cylinder() {
super(1); //当父类的构造方法中有参时,必须使用super(参数值);
length=1;
}
public void setl(double length){
this.length=length;
}
public double getl(){
return length;
}
//通过super调用父类方法
public double getarea(){
return super.getarea() *2+radius*2*3.14*length; /*在父类中,radius是protected属性,可在子类中直接调用;如果属性为private, 则用通过方法getr()获取半径*/
}
public double getv(){
return super.getarea()*length; //在子类的方法中使用super.被重写的父类方法对该方法进行调用
}
}
public class test {
public static void main(String args[]){
Cylinder c=new Cylinder();
System.out.println("圆柱体积为: "+c.getv());
System.out.println("圆柱表面积为: "+c.getarea());
c.setl(2);
c.setr(1);
System.out.println("圆柱体积为: "+c.getv());
System.out.println("圆柱表面积为: "+c.getarea());
}
}

this和super关键字的更多相关文章
- Java super关键字活用
在实际开发中我们要自定义组件,就需要继承自某个组件类,如果我们自定义的这个组件类也需要像被继承的这个组件类一样,拥有丰富的构造方法. 关键字super的作用就更加显得尤为重要了,你可以在堆砌自己自定义 ...
- 12.super关键字
①在java中使用super关键字来调用父类的成分
- this、super关键字
this关键字 this 关键字用来表示当前对象本身,或当前类的一个实例,通过 this 可以调用本对象的所有方法和属性. public class Demo{ public int x = 10; ...
- Java基础-super关键字与this关键字
用super调用父类构造方法 类如果没有显式声明构造方法,则自动生成无参数的默认构造方法. 1.先用一个无参数的父类构造方法验证一下, 执行子类构造方法会自动调用父类的构造方法.测试代码: class ...
- 使用 Object.create 创建对象,super 关键字,class 关键字
ECMAScript 5 中引入了一个新方法:Object.create().可以调用这个方法来创建一个新对象.新对象的原型就是调用 create 方法时传入的第一个参数: var a = {a: 1 ...
- 方法重写和方法重载;this关键字和super关键字
1:方法重写和方法重载的区别?方法重载能改变返回值类型吗? 方法重写: 在子类中,出现和父类中一模一样的方法声明的现象. 方法重载: 同一个类中,出现的方法名相同,参数列表不同的现象. 方法重载能改变 ...
- 继承进一步使用,以及super关键字
目标: 1)掌握子类对象实例化过程 2)掌握方法覆盖概念和实现. 3)掌握super关键字的作用. 一,子类对象实例化过程 子类对象在实例化之前,必须先调用父类中的构造方法,再调用子类中的构造方法. ...
- OC基础--self关键字&super关键字
PS:OC中的self关键字可以与C#中的this关键字区分记忆,虽然区别还是很大的. OC中的super关键字指的是父类指针 一.self关键字必须了解的知识: 1.使用场合:只能用在方法中(对象方 ...
- 面向对象编程(十)——继承之Super关键字及内存分析
Super关键字
- 成员变量的隐藏,方法的覆盖,super关键字
成员变量的隐藏:当父类和子类有相同的成员变量时,即定义了与父类相同的成员变量时,就会发生子类对父类变量的隐藏.对于子类的对象来说,父类中的同名成员变量被隐藏起来,子类就会优先使用自己的成员变量,父类成 ...
随机推荐
- Python学习遇到的问题
UnicodeDecodeError: 'gbk' codec can't decode byte 0xae in position
- LVM逻辑分区
视频:http://v.youku.com/v_show/id_XNTk2NzExMTg0.html?f=27874439&o=1&spm=0.0.playList.5!3~5~A.t ...
- C语言程序设计现代方法_数组(第八章)
C语言不要求检查下标的范围.当下标超出范围时,程序可能会执行不可预知的行为. 看下这个程序: #include <stdio.h> #define N 10 // int main() { ...
- hdu 1247 map的使用
http://acm.hdu.edu.cn/showproblem.php?pid=1247 Hat’s Words Time Limit: 2000/1000 MS (Java/Others) ...
- FJNU 1152 Fat Brother And Integer(胖哥与整数)
FJNU 1152 Fat Brother And Integer(胖哥与整数) Time Limit: 1000MS Memory Limit: 257792K [Description] [题 ...
- check running processes in Ubuntu
Check processes If you want to see what processes are running use the command ps -ef If you want to ...
- STL--set
set-概述: 集合Set是一个容器,它其中所包含的元素的值是唯一的.集合中的元素按一定的顺序排列,并被作为集合中的实例. 一个集合通过一个链表来组织,其具体实现采用了红黑树的平衡二叉树的数据结构. ...
- Cocos2d-x优化中纹理优化
转自 http://blog.csdn.net/tonny_guan/article/details/41016241 Cocos2d-x优化中纹理优化 1.纹理像素格式纹理优化工作的另一重要的指标是 ...
- 转 iOS和android游戏纹理优化和内存优化(cocos2d-x)
iOS和android游戏纹理优化和内存优化(cocos2d-x) (未完成) 1.2d游戏最占内存的无疑是图片资源. 2.cocos2d-x不同平台读取纹理的机制不同.ios下面使用CGImage, ...
- php使用cURL实现Get和Post请求的方法
1.cURL介绍 cURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP.FTP.TELNET等.最爽的是,PHP也支持 cURL 库.本文将介绍 cURL 的一些高级特性 ...