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关键字
成员变量的隐藏:当父类和子类有相同的成员变量时,即定义了与父类相同的成员变量时,就会发生子类对父类变量的隐藏.对于子类的对象来说,父类中的同名成员变量被隐藏起来,子类就会优先使用自己的成员变量,父类成 ...
随机推荐
- 9.Parameters
1.Optional and Named Parameters calls these methods can optionally not specify some of the arguments ...
- 二叉树hdu1710
学习二叉树,看了两天也不明白,唉!acm之路让我体验到要付出巨大的努力,废话不多说,看我网上找到的代码: 此题题意很明确,给你先序遍历,中序遍历,求后序遍历.但代码就让我找不到东西了. http:// ...
- 纯js写验证码
<html> <head> <meta name="viewport" content="width=device-width" ...
- 常用sql(转)
1增 1.1[插入单行]insert [into] <表名> (列名) values (列值)例:insert into Strdents (姓名,性别,出生日期) values ('开心 ...
- QQLogin
import java.awt.*; import javax.swing.*; public class QQLogin extends JFrame{ QQLogin(){ this.setSiz ...
- Linux_常用命令_02
1. 配置网络参数: (1).root登录 --> setup命令 进入到 "text mode setup utiliy" (2).运行命令"/etc/rc.d/ ...
- ean13码的生成,python读取csv中数据并处理返回并写入到另一个csv文件中
# -*- coding: utf-8 -*- import math import re import csv import repr def ean_checksum(eancode): &quo ...
- Ubuntu系统下面软件安装更新命令
在ubuntu服务器下安装包的时候,经常会用到sudo apt-get install 包名 或 sudo pip install 包名,那么两者有什么区别呢? 1.区别 pip用来安装来自PyPI( ...
- CSS3_边框属性之圆角的基本图形案例
一.正方形 div{ background:#F00; width:100px; height:100px;} 二.长方形 div{background:#F00;width:200px;heig ...
- grade web的构建约定 convention
--2015.09.24 当使用gradle构建web应用时: src/main/javasrc/main/resourcessrc/main/webapp/resourcessrc/main/web ...