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关键字的更多相关文章

  1. Java super关键字活用

    在实际开发中我们要自定义组件,就需要继承自某个组件类,如果我们自定义的这个组件类也需要像被继承的这个组件类一样,拥有丰富的构造方法. 关键字super的作用就更加显得尤为重要了,你可以在堆砌自己自定义 ...

  2. 12.super关键字

    ①在java中使用super关键字来调用父类的成分

  3. this、super关键字

    this关键字 this 关键字用来表示当前对象本身,或当前类的一个实例,通过 this 可以调用本对象的所有方法和属性. public class Demo{ public int x = 10; ...

  4. Java基础-super关键字与this关键字

    用super调用父类构造方法 类如果没有显式声明构造方法,则自动生成无参数的默认构造方法. 1.先用一个无参数的父类构造方法验证一下, 执行子类构造方法会自动调用父类的构造方法.测试代码: class ...

  5. 使用 Object.create 创建对象,super 关键字,class 关键字

    ECMAScript 5 中引入了一个新方法:Object.create().可以调用这个方法来创建一个新对象.新对象的原型就是调用 create 方法时传入的第一个参数: var a = {a: 1 ...

  6. 方法重写和方法重载;this关键字和super关键字

    1:方法重写和方法重载的区别?方法重载能改变返回值类型吗? 方法重写: 在子类中,出现和父类中一模一样的方法声明的现象. 方法重载: 同一个类中,出现的方法名相同,参数列表不同的现象. 方法重载能改变 ...

  7. 继承进一步使用,以及super关键字

    目标: 1)掌握子类对象实例化过程 2)掌握方法覆盖概念和实现. 3)掌握super关键字的作用. 一,子类对象实例化过程 子类对象在实例化之前,必须先调用父类中的构造方法,再调用子类中的构造方法. ...

  8. OC基础--self关键字&super关键字

    PS:OC中的self关键字可以与C#中的this关键字区分记忆,虽然区别还是很大的. OC中的super关键字指的是父类指针 一.self关键字必须了解的知识: 1.使用场合:只能用在方法中(对象方 ...

  9. 面向对象编程(十)——继承之Super关键字及内存分析

    Super关键字

  10. 成员变量的隐藏,方法的覆盖,super关键字

    成员变量的隐藏:当父类和子类有相同的成员变量时,即定义了与父类相同的成员变量时,就会发生子类对父类变量的隐藏.对于子类的对象来说,父类中的同名成员变量被隐藏起来,子类就会优先使用自己的成员变量,父类成 ...

随机推荐

  1. [JAVA设计模式]第三部分:结构模式

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  2. equals()和hashcode()

    默认调用的情况: 1.集合在存放对象时,首先判断hashcode(),再判断equals如果都是true,认为是相同的两个元素不进行存储. 删除对象时,将从hashcode指定位置查找再删除 2.在h ...

  3. Data truncation: Truncated incorrect DOUBLE value 解决方案

    1.情况限制 此处的错误解决方案只讨论: 在使用Mybatis时,传入数组且使用<foreach>标签时出现此种报错: 2.报错案例 mapper.java /** * @Descript ...

  4. [转载] linux 程序运行过程中替换文件

    今天被朋友问及“Linux下可以替换运行中的程序么?”,以前依稀记得Linux下是可以的(而Windows就不让),于是随口答道“OK”.结果朋友发来一个执行结果:(test正在运行中)# cp te ...

  5. Html.Listbox的用法(实例)

    homecontroller控制器中的index动作代码如下:         public actionresult index()        { list<selectlistitem& ...

  6. 代码中特殊的注释技术——TODO、FIXME和XXX的用处

    本文内容概要: 代码中特殊的注释技术--TODO.FIXME和XXX的用处. 前言:今天在阅读Qt  Creator的源代码时,发现一些注释中有FIXME英文单词,用英文词典居然查不到其意义!实际上, ...

  7. Android广播BroadcastReceiver 二

    BroadcastReceiver: 在Android中,Broadcast是一种广泛运用的在应用程序之间传输信息的机制.而BroadcastReceiver是对发送出来的 Broadcast进行过滤 ...

  8. 2015苹果WWDC开发者大会

    2015苹果WWDC开发者大会 (1)本届主题为“the epicenter of change(变革的中心)” (2)iOS 9.OS X.watchOS三款重要系统更新以及其他服务 (3)iOS ...

  9. uva 10692 Huge Mods 超大数取模

    vjudge上题目链接:Huge Mods 附上截图: 题意不难理解,因为指数的范围太大,所以我就想是不是需要用求幂大法: AB % C = AB % phi(C) + phi(C) % C ( B ...

  10. ajax请求成功或失败的参数

    success:function(response, status, xhr){ }, error:function(xhr, errorText, errorType){ alert(errorTe ...