内容:

1、this和super作用

2、继承关系图

1、this和super作用

this和super的作用:

  • this:区分本类中的成员变量和局部变量同名的情况,代指本类
  • super:区分子类中的成员变量和父类中的成员变量,代指父类

this和super调用普通成员与构造方法:

 // 调用普通成员:
this.成员变量 可以访问本类对象的成员变量
super.成员变量 可以访问父类对象的成员变量 this.成员方法() 可以访问本类对象的成员方法
super.成员方法() 可以访问父类对象的成员方法 使用this找本类,如果子类没有找父类
使用super找父类,如果父类没有不会去找子类 // 调用构造方法:
this(其他参数) 可以访问本类其他的构造方法
super(其他参数) 可以访问父类其他的构造方法 // 默认子类调用父类构造方法:
子类的每个构造方法中均有默认的super(),调用父类的空参构造。手动调用父类构造会覆盖默认的super();

this调用构造方法:

 public class Person {
private int age;
public Person(){
this(15);//这句话调用 下面带int参数构造
}
public Person(int age){
this.age = age;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
/*
* this调用本类中的其他构造方法
* 注意:this()语句形式必须写在构造方法的第一行
*/
public class Test {
public static void main(String[] args) {
Person p = new Person();
int a = p.getAge();
System.out.println(a);
}
}

super调用构造方法:

 // 注:子类的每个构造方法中均有默认的super(),调用父类的空参构造
public class Fu {
int a;
public Fu(){
System.out.println("父类的构造方法");
}
   public Fu(int a){
this.a = a;
} } public class Zi extends Fu{
public Zi(){
super(666);
System.out.println("子类的构造方法");
}
}
public class Test {
public static void main(String[] args) {
new Zi(); // 匿名对象
   }
}

2、继承关系图

 //定义父类
public class Person {
private String name;
private int age; public Person(){}
public Person(String name,int age) {
this.name = name;
this.age = age;
}
// get/set方法
} //定义子类
public class Chinese extends Person{
private String address;
public Chinese(){}
public Chinese(String name,int age,String address) {
super(name,age);
this.address = address;
  }
// 对address的get/set
} //定义测试类,使用子类创建对象
public class Test{
Chinese c = new Chinese(“AngelaBaby”,18,”北京海淀区上地软件园”);
}

Java的this和super总结的更多相关文章

  1. Java中this与super的区别【6】

    若有不正之处,请多多谅解并欢迎批评指正,不甚感激.请尊重作者劳动成果: 本文原创作者:pipi-changing本文原创出处:http://www.cnblogs.com/pipi-changing/ ...

  2. Java基础-this和super的区别

    package com.cn.This; /** * this与super的区别: * 1.this相当于指向本类的对象的指针,调用本类的另一种类型的构造方法 * 2.super调用的是父类中形参相同 ...

  3. java方法重写和super关键字

    //java方法重写和super关键字 //在继承中,其实就是子类定义了和父类同名的方法 //就是方法,属性都是相通的 //重写限制: //被子类重写的方法不能拥有比父类方法更加严格的权限 //sup ...

  4. java基础学习总结——super关键字

    一.super关键字

  5. JAVA中this和super用法

    参考网上资料和自行理解总结java中this和super中各自用法及其差异 <一>. this的用法 构造方法是创建java对象的重要途径,通过new关键字调用构造器时,构造器返回该类的对 ...

  6. java的继承 和super关键字 构造器

    面向对象的特性二继承: 继承的好处: 1.减少代码的冗余.提高了代码的复用性 2.便于功能的扩展 3.为之后多态的使用,提供了前提 继承的格式: class A extends B{} A:子类.派生 ...

  7. Java泛型中的? super T语法

    ? super T 语法将泛型类限制为所有T的超类(包括T自身),但只能用于参数中,不可以在返回值用加以限定.如果不加以限定,假设某个函数头为? super Manager get()由于编译器不知道 ...

  8. [Java基础]java中this和super

    一.this关键字 1.this概念 (参考:http://www.cnblogs.com/xdp-gacl/p/3636071.html)   this是一个引用,它指向自身的这个对象,它的内存分析 ...

  9. Java关键字this、super使用总结

    版权声明:原创作品,如需转载,请与作者联系.否则将追究法律责任. 作者:熔岩日期:2007-03-01MSN :leizhimin@126.com声明:原创作品,未经授权,谢绝转载! 好久没有对所学知 ...

  10. Java中 final static super this instanceof 关键字用法

    一.final关键字 final可以修饰变量.方法及类: 1.当定义一个final变量时,jvm会将其分配到常量池中,其所修饰的对象只能赋值一次,对基本类型来说是其值不可变,引用类型(包括作为函数形参 ...

随机推荐

  1. nodejs tutorials

    设置npm的镜像为淘宝镜像 npm config list npm config set registry " https://registry.npm.taobao.org "

  2. memset,memcpy,strcpy

    http://www.cppblog.com/junfeng568/archive/2006/03/11/4022.html

  3. VM中 Ubuntu14.04 中Samba的安装配置和使用

    以前都是在Redhat 上搭建samba,现在改成在ubuntu12.04 上搭建发现 sudo /etc/init.d/samba restart  始终不行,原来,现在ubuntu下,启动服务要用 ...

  4. 有道词典 安卓版 更新日志 - imsoft.cnblogs

    手机词典 更新日志: 2014年4月23日 v5.0.4版本 ·         新增“全球发音”功能,带来世界各国的英文口音,体验原汁原味的英语发音: ·         新增“发现频道”,打造移动 ...

  5. 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具?

    如果你的团队没有觉得微信是低效的团队 IM 工具,那只有两种可能: 团队成员很少使用微信进行私人的生活和娱乐. 你就是一个低效的团队,而且还不自知. 本文内容 微信,连接一切 每个人都有微信 微信,低 ...

  6. Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息

    一个工程师团队使用 Slack 进行团队协作比 QQ / 微信流的效率高多啦.除了基本的 IM 之外,它的扩展性也是非常重要的一点. 本文介绍 Slack 的开发入门:Incoming Webhook ...

  7. 黑电-逻辑地址-0X4EB9FDE3- %o %d %x

    ****************************************************************************** 编程语言通常规定是以0开头的数字是八进制数 ...

  8. JSON字符串-赋张最初接触后台从map转json的方法

    **************************************** json数组: *************************************************** ...

  9. 【转】每天一个linux命令(11):nl命令

    原文网址:http://www.cnblogs.com/peida/archive/2012/11/01/2749048.html nl命令在linux系统中用来计算文件中行号.nl 可以将输出的文件 ...

  10. Python与机器学习

    pandas里面的对于数据操作比如where,drop以及dropna等都会有一个属性:inplace,这个单词意思是原地,如果inplace=true代表数据本身要返回(原地数据也会被改变):如果i ...