精华内容
下载资源
问答
  • 关键字super作用意义

    千次阅读 2013-07-07 22:53:00
    由于子类可以覆盖父类的实例方法、隐藏父类的类方法、隐藏父类的字段等,但是我们有时候需要引用到父类的一些方法,这时候需要借助关键字super.   1.隐藏超类中的字段:  如果一个子类中与其父类有同名的字段,即使...

        由于子类可以覆盖父类的实例方法、隐藏父类的类方法、隐藏父类的字段等,但是我们有时候需要引用到父类的一些方法,这时候需要借助关键字super.

     

    1.使用super关键字访问父类中的成员.

        1-1.调用父类中被覆盖的方法

        示例:

    public class Superclass {
        public void printMethod() {
            System.out.println("在Superclass中的输出。");
        }
    }
    public class Subclass extends Superclass {
    	//重写超类Superclass中的printMethod方法
        	public void printMethod() { 
            	super.printMethod();							//使用super关键字调用超类中的方法
            	System.out.println("在Subclass中的输出。");
        	}
    }
    
    public class ExtendsDemo7{
        	public static void main(String[] args) {    	
        		Subclass s = new Subclass();
        		s.printMethod();	
        	}
    }

    输出结果:

    在Superclass中的输出.
    在Subclass中的输出.

     

        1-2.访问父类中被隐藏的字段

        示例: 

    // 父类A
    class A{
    	public String name = "张小明";
    }
    
    // A的子类B
    class B extends A{
    	public String name = "赵红丽";
    	public void self( ){
    		System.out.println("我的名字是:" + name);
    		System.out.println("我原来的名字是:" + super.name);	//使用super访问超类中被隐藏的字段
    	}
    }
    // 主程序ExtendsDemo8
    public class ExtendsDemo8{
      public static void main(String[ ] args){
    	B b = new B( );
    	b.self( );
      }
    }

    输出结果:

    我的名字是: 赵红丽
    我原来的名字是: 张小明


    2.使用super关键字调用父类的构造器:

        子类是不继承父类的构造器.因此,如果要初始化父类中的字段,可以在子类的构造器中,通过关键字super调用父类的构造器.对父类的构造器的调用必须放在子类的构造器的第一行.

        示例:

    // 父类A
    class A{
    	A(){
    		System.out.println("这里是超类A的构造器。");
    	}
    }
    
    // A的子类B
    class B extends A{
    	B(){
    		super();
    		System.out.println("这里是子类B的构造器。");
    	}
    }
    
    // 主程序ExtendsDemo9.java
    public class ExtendsDemo9{
        public static void main(String[] args) {
    		B b = new B();
        }
    }

    输出结果:

    这里是超类A的构造器.
    这里是子类B的构造器.


    3.构造器连

        如果一个子类的构造器显式或隐式地调用其父类的一个构造器,而其父类会再显式或隐式地调用父类的父类的构造器.形成一个完整的构造器链.

        示例:

    class Book {
        private String ISBN;
        Book(String isbn){
    			this.ISBN = isbn;
        }
        public String getISBN(){
    			return this.ISBN;
        }
        public boolean equals(Object obj) {
            if (obj instanceof Book)
                return ISBN.equals(((Book)obj).getISBN()); 
            else
                return false;
        }
    }
    
    public class ExtendsDemo11{
        public static void main(String[] args) {
    		Book firstBook  = new Book("0201914670"); 
    		Book secondBook = new Book("0201914670");
    		if (firstBook.equals(secondBook)) {
        			System.out.println("两个对象相等.");
    		} else {
        			System.out.println("两个对象不相等.");
    		}
        }
    }
    
    
    
    
    
    

    输出结果:

    这里是超类A的构造器.
    这里是超类B的构造器.
    这里是子类C的构造器.


     

    展开全文
  • 关键字super作用 super代表父类对应的对象,所以用super访问在子类中无法直接使用的父类成员和方法 Java内存区域 JAVA的JVM的内存可分为3个区:堆(heap)、栈(stack)和方法区(method) 栈区: 每个线程包含...

    关键字super的作用

    super代表父类对应的对象,所以用super访问在子类中无法直接使用的父类成员和方法

     Java内存区域

    JAVA的JVM的内存可分为3个区:堆(heap)、栈(stack)和方法区(method)

    • 栈区:
    1. 每个线程包含一个栈区,栈中只保存方法中(不包括对象的成员变量)的基础数据类型和自定义对象的引用(不是对象),对象都存放在堆区
    2. 每个栈中的数据(原始类型和对象引用)都是私有的,其他栈不能访问。
    3. 栈分为3个部分:基本类型变量区、执行环境上下文、操作指令区(存放操作指令)。
    • 堆区:
    1. 存储的全部是对象实例,每个对象都包含一个与之对应的class的信息(class信息存放在方法区)。
    2. jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身,几乎所有的对象实例和数组都在堆中分配。
    • 方法区:
    1. 又叫静态区,跟堆一样,被所有的线程共享。它用于存储已经被虚拟机加载的类信息、常量、静态变量,即时编译器编译后的代码等数据。

    程序计数器一个比较小的内存区域,用于指示当前线程所执行的字节码执行到了第几行,是线程隔离的
    
    原则上讲,所有的对象都是在堆区上分配内存,是线程之间共享的
    Java方法执行内存模型,用于存储局部变量,操作数栈,动态链接,方法出口等信息,是线程隔离的

    有一个源代码,只包含import java.util.* ; 这一个import语句,

    能访问java/util目录下的所有类不能访问java/util子目录下的所有类

    展开全文
  • java 关键字super

    2018-10-12 01:33:04
    java 关键字superjava关键字的使用demo java关键字的使用 super:可用来修饰属性、方法、构造器 当子类与父类中有同名的属性时,可用通过“super.此属性”显示调用父声明的属性。 若想调用子类的同名...

    java 关键字super

    java关键字的使用

    1. super:可用来修饰属性、方法、构造器

    2. 当子类与父类中有同名的属性时,可用通过“super.此属性”显示调用父声明的属性。

    3. 若想调用子类的同名的属性“用this.属性”调用

    4. 当子类重写父类的方法以后,在子类中若想调用父类的方法,就需要显示调用父类中的方法,用“super.方法”

    demo

    public class Person {
    
    	private String name;
    	private int age;
    	int id;//身份证
    	...
    	public void eat() {
    		System.out.println("吃饭");
    	}
    }
    
    public class Student extends Person {
    	private String schoolName;
    	private int id;//学号
    	public Student(String schoolName, int id) {
    		super();//调用父类的构造器结构,加载父类的属性
    		this.schoolName = schoolName;
    		this.id = id;
    	}
    	
    	public void show() {
    		//默认this.id
    		System.out.println(this.id);		
    		System.out.println(super.id);
    	}
    }
    
    展开全文
  • 主要介绍了java 关键字super详解及用法的相关资料,需要的朋友可以参考下
  • 跟汤老师学Java笔记:super关键字 完成:第一遍 1.super关键字和this关键字的区别? super关键字: 表示父类对象的引用,只能在子类中使用 可以使用 super() 调用父类的构造方法,必须位于第一行 可以使用 super. ...

    21.super关键字:super关键字和this关键字的区别是什么???

    学习:第7遍


    1.super关键字和this关键字的区别是什么???

    super关键字表示父类对象的引用
    只能在子类中使用
    可以使用 super() 调用父类的构造方法
    但super() 必须位于构造方法第一行
    可以使用 super访问父类的属性和方法
    super.变量名可解决
    父类成员变量和子类成员变量
    同名冲突的问题

    this关键字表示当前对象的引用
    只能在方法中使用
    可以使用 this() 访问当前类中重载的构造方法
    但this()必须位于构造方法第一行
    可以使用 this访问本类中的属性和方法
    this.变量名可解决
    成员变量和局部变量同名冲突的问题

    注:调用构造方法时this()和super()
    都只能放在构造方法第一行
    所以this()和super()不能同时使用

    展开全文
  • 关键字super

    千次阅读 2008-09-11 19:47:00
    关键字super明确显式地指出一个类可以它父类的构造函数、方法和变量。 关键字super和继承一起建立类和它的父类的紧密联系。继承隐含地指出子类对父类所拥有的访问权限。例如,当我们要调用一个实例方法时,如果实例...
  • Java中super关键字及其作用

    千次阅读 2020-03-30 18:08:34
    Java中super关键字及其作用 super关键字及其作用 A:super关键字指代父类对象引用(super代表父类存储空间的标识) B:作用: a:访问被子类隐藏的父类同名成员变量和成员方法 ; b:调用父类构造方法,且必须在子类构造...
  • super关键字作用

    2019-09-11 21:01:47
    但是必须是在子类的构造方法中使用super关键字来调用. 语法格式:super([参数列表]); 如果父类的构造方法中包括参数,则参数列表为必选项,用于指定父类构造方法的入口参数. 2.操作被隐藏的成员变量和...
  • 在静态方法当中不允许出现 this 关键字 super: 代表对当前对象的直接父类对象的引用 可以调用父类的非 private 成员变量和方法 super(); 可以调用父类的构造方法,只限构造方法中使用,且必须是第一条...
  • Java5-2关键字super final

    2020-12-07 20:03:52
    关键字super final 1.super 关键字 子类可以隐藏从父类继承的成员变量和方法,如果要在子类中使用被隐藏的成员变量或者方法,则使用super关键字 super关键字用法: 使用super调用父类的构造方法:子类不继承父类的...
  • JAVA中关键字THIS和关键字SUPER图解 父类 package demo10; public class Fu { int num=10; public void method(){ System.out.println("父类方法"); } } 子类 package demo10; import java.util.zip....
  • super 和this关键字作用 this是本身调用者对象 super代表父类对象 注意事项 super调用父类构造方法,必须出现在构造方法第一排 super和this不能同时调用构造方法 super只能出现在子类的方法或子类的构造方法中 ...
  • this 和 super 关键字作用   this 是对象内部指代自身的引用,同时也是解决成员变量和局部变量同 名问题;this 可以调用成员变量,不能调用局部变量;this 也可以调用成员 方法,但是在普通方法中可以省略 this,在...
  • Super 关键字作用

    千次阅读 2017-05-03 13:25:40
    super关键字:  1.可以用在类方法和对象方法中。  2.在对象方法中可以使用super 关键字,调用当前对象从父类继承过来的对象方法。  3.在类方法中 super关键字可以调用当前类从父类继承过来的方法(类...
  • Java 关键字super用法介绍内容待完成
  • Java之关键字super

    2016-06-01 18:09:25
    Super 关键字 1. super 不是引用类型,super中存储的不是内存地址,super指向的不是父类对象 2. Super代表的是当前子类对象中的父类型特征 3.什么时候使用super?  子类和父类中都有某个数据/方法,例如子类和父类...
  • java 关键字super和this

    2019-09-28 12:59:45
    super关键字  作用:调用父类的构造器  只能出现在子类的构造其中,并且必须是第一行  super()中的参数,决定了调用父类的那个构造器  注:如果子类构造器中没有出现super,则默认加上super(),调用父类...
  • this关键字super关键字分别代表什么?以及他们各自的使用场景和作用。 1.成员变量和局部变量重名时,可以用this来区分。 2.this可以用在构造函数中,调用其它构造函数(只能定义在构造函数的第一行,因为初始化...
  • this和super关键字作用区别 this:是对象对自身的引用,没有继承也可以使用,调用本类的构造 super:对父类对象的引用,只能在继承条件下使用,调用父类的构造 super注意点: super调用父类的构造方法,必须在...
  • Java关键字super与this

    2018-01-05 16:20:21
    但是,下列场景中,如果想在子类中访问父类方法或变量,就可以使用super关键字。 1)如果子类隐藏了父类的变量(静态变量或者实例变量【成员变量】)。 2)子类的静态方法隐藏了父类静态方法,当子类未转换成父...
  • ① 在 java 语言中,关键字 this 指的是对当前对象的引用,关键字 super 指的是当前对象里面的父对象的引用。java 语言中,关键字 this 指的是对当前对象的引用,关键字 super 指的是当前 对象里面的父对象的引用...
  • Java中关于super关键字作用

    万次阅读 2019-01-07 20:57:52
    在子类继承父类中,一般有一行super的语句,需要记住三种使用方法: 1、super.变量/对象名; 使用这种方法可以直接访问父类中的变量或对象,进行修改赋值等操作 2、super.方法名(); 直接访问并调用父类中的方法 3、...
  • 1.super关键字可以在子类的构造方法中显示地调用父类的构造方法,super()必须为子类构造函数中的第一行。 2.super可以用来访问父类的成员方法或变量,当子类成员变量或方法与父类有相同的名字时也会覆盖父类的成员...
  • Java关键字 super和this

    2017-03-19 13:13:38
    总结关键字this与super用法。 author: ZJ 07-3-12 Blog: [url]http://zhangjunhd.blog.51cto.com/[/url] 1.什么super什么是this? super关键字表示超(父)类的意思。this变量代表对象本身。 2.使用...
  • 关键字super 在Java类中使用super来引用父类的成分 super可用于访问父类中定义的属性 super可用于调用父类中定义的成员方法 super可用于在子类构造方法中调用父类的构造方法 super的追溯不仅限于直接父类 ...
  • super关键字

    2019-03-29 09:20:35
    super关键字 super关键字:是直接直接父类对象的引用,可以用super访问父类中被子类覆盖的方法和属性,this指的是当前对象,而super指的是父类 继承树 1.属性或方法查找顺序: 1.1查找当前类中有没有h属性 .....
  • Java中的super什么?java中的super关键字是一个引用变量,用于引用父类对象。关键字super”以继承的概念出现在类中。主要用于以下情况: 1.使用super与变量:当派生类和基类具有相同的数据成员时,会发生此情况...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 184,373
精华内容 73,749
关键字:

关键字super作用是什么