精华内容
下载资源
问答
  • Java中super关键字

    2020-12-22 19:41:07
    Java中,有时还会遇到子类中的成员变量或方法与父类中的成员变量或方法同名。因为子类中的成员变量或方法名优先级高,所以子类中的同名成员变量或方法隐藏了父类的成员变量或方法,但是我们如果想要使用父类中的...
  • java中super关键字

    2020-11-08 01:15:32
    super关键字的讲解 文章目录super关键字的讲解1. super 关键字可以理解为:父类的2. 可以用来调用的结构:3. super调用属性、方法:4. super调用构造器:5. 代码实现: b站学习视频以及笔记-尚硅谷_Java零基础教程 ...

    super关键字的讲解

    b站学习视频以及笔记-尚硅谷_Java零基础教程

    java入门必备-适合初学者的全套完整版教程(宋红康主讲)

    1. super 关键字可以理解为:父类的

    2. 可以用来调用的结构:

    属性、方法、构造器

    3. super调用属性、方法:

    3.1 我们可以在子类的方法或构造器中。通过使用"super.属性"或"super.方法"的方式,显式的调用父类中声明的属性或方法。但是,通常情况下,我们习惯省略"super."
    3.2 特殊情况:当子类和父类中定义了同名的属性时,我们要想在子类中调用父类中声明的属性,则必须显式的使用"super.属性"的方式,表明调用的是父类中声明的属性。
    3.3 特殊情况:当子类重写了父类中的方法以后,我们想在子类的方法中调用父类中被重写的方法时,则必须显式的使用"super.方法"的方式,表明调用的是父类中被重写的方法。

    4. super调用构造器:

    4.1 我们可以在子类的构造器中显式的使用"super(形参列表)"的方式,调用父类中声明的指定的构造器
    4.2 "super(形参列表)"的使用,必须声明在子类构造器的首行!
    4.3 我们在类的构造器中,针对于"this(形参列表)"或"super(形参列表)“只能二一,不能同时出现
    4.4 在构造器的首行,没显式的声明"this(形参列表)“或"super(形参列表)”,则默认调用的是父类中空参的构造器:super()
    4.5 在类的多个构造器中,至少一个类的构造器中使用了"super(形参列表)”,调用父类中的构造器

    5. 代码实现:

    父类
    public class Person {
    	String name;
    	int age;
    	int id = 1001;//身份证号
    	
    	public Person(){
    		System.out.println("我无处不在!");
    	}
    	
    	public Person(String name){
    		this.name = name;
    	}
    	
    	public Person(String name,int age){
    		this(name);
    		this.age = age;
    	}
    	
    	public void eat(){
    		System.out.println("人:吃饭");
    	}
    	public void walk(){
    		System.out.println("人:走路");
    	}
    }
    
    子类
    public class Student extends Person{
    	
    	String major;
    	int id = 1002;//学号
    	
    	public Student(){
    		super();//调用父类无参构造方法
    	}
    	public Student(String major){
    		super();//调用父类无参构造器
    		this.major = major;
    	}
    	
    	public Student(String name,int age,String major){
    //		this.name = name;
    //		this.age = age;
    		super(name,age);//调用父类有参构造器
    		this.major = major;
    	}
    	
    	//重写
    	@Override
    	public void eat() {
    		System.out.println("学生:多吃有营养的食物");
    	}
    	
    	public void study(){
    		System.out.println("学生:学习知识");
    		this.eat();
    		super.eat();//父类eat方法
    		walk();//调用父类方法
    	}
    	
    	public void show(){
    		System.out.println("name = " + name + ", age = " + age);
    		System.out.println("id = " + this.id);
    		System.out.println("id = " + super.id);
    	}
    }
    
    
    测试类
    public class SuperTest {
    	public static void main(String[] args) {
    		
    		Student s = new Student();//调用父类构造器
    		s.show();//Student类的重写show方法
    		
    		System.out.println();
    		
    		s.study();//Student类的重写study方法
    		
    		Student s1 = new Student("Tom", 21, "IT");
    		s1.show();
    		
    		System.out.println("************");
    		Student s2 = new Student();//调用父类构造器
    		
    	}
    }
    

    image-20201108011039784

    展开全文
  • Java中在执行子类的构造方法之前或者子类没有明确指定构造方法,会自动调用父类的无参构造方法。(视频教程推荐:java课程)super的三种使用情况:访问父类方法中被覆盖的方法。调用父类构造方法。访问父类中的隐藏...

    022a77b188efb88c67492fac7d84c035.png

    Java中在执行子类的构造方法之前或者子类没有明确指定构造方法,会自动调用父类的无参构造方法。

    (视频教程推荐:java课程)

    super的三种使用情况:

    访问父类方法中被覆盖的方法。

    调用父类构造方法。

    访问父类中的隐藏成员变量。

    示例代码:class A{

    int a;

    A(){

    a = 3;

    System.out.println(a);

    }

    void dosomething(){

    System.out.println("A");

    }

    }

    class B extends A{

    int a;

    B(){

    a = 5;

    System.out.println(a);

    }

    void dosomething(){

    super.dosomething();

    System.out.println("B");

    }

    }

    当在main方法中执行B b = new B();

    b.dosomething();

    输出结果:3

    5

    A

    B

    父类中的构造方法不能被子类继承,子类只能使用自己的构造方法或者默认的无参构造方法。

    父类定义有参构造方法时,子类定义无参的构造方法的时候编译器自动添加super()会出现报错。(父类没有与之对应的无参构造方法)

    展开全文
  • 文章目录Java中super关键字Java中final关键字 Java中super关键字 super 可以理解为是指向自己父(超)类对象的一个指针,而这个超类指的是离自己最近的一个父类。 super关键字的作用: 调用父类的构造方法 调用父类...

    Java中super关键字

    super 可以理解为是指向自己父(超)类对象的一个指针,而这个超类指的是离自己最近的一个父类。

    super关键字的作用:

    • 调用父类的构造方法
    • 调用父类的成员方法

    注意:

    1super只能应用在成员方法和构造方法中,不能应用在静态方法中(和this是一样的),如果在构造方法中使用super,必须放在方法的第一行。
    
    2、构造方法不存在覆盖的概念,构造方法可以重载。
    
    3、关于构造方法的执行顺序:先执行父类的再执行子类的,必须完成父类的所有初始化,才能创建子类。
    
    4、程序运行时机优先级是:类加载-->静态代码块运行-->静态变量初始化-->对应的构造函数运行
    

    为什么会有super关键字

    • 因为子类必须要调用父类的构造方法,先把父类构造完成,因为子类依赖于父类,没有父,也就没有子
    • 有时候需要在子类中,显示的调用父类的成员方法和父类的构造方法。
    • 子类中即使我们没有显示的调用父类的无参构造方法,那么它也会默认使用super()调用父类的无参构造方法,此种情况下子类如果显示的设置了有参构造器,必须显示设置无参构造器,否则编译时将会失败。

    super和this在构造方法中的使用:

    • super(参数):调用父类中的某一个构造函数(必须为构造函数中的第一行)。
    • this(参数):调用本类中的构造函数(必须为构造函数中的第一行)。

    Java中final关键字

    final表示不可改变的含义

    final关键字使用总结:

    • 使用final关键字修饰的类不能被继承

    • 使用final关键字修饰的方法不能被覆盖(重写)

    • 使用final关键字修饰的变量,在使用前必须显示初始化。对于final修饰的成员变量,我们有且只有两个地方可以给它赋值,一个是声明该成员时赋值,另一个是在构造方法中赋值,在这两个地方我们必须给它们赋初始值。

    • 使用final关键字修饰的变量(基本类型)一旦赋值,不能被改变。如果使用final关键字修饰的引用类型,那么这个引用只能指向一个对象,也就是说这个引用不能通过 ** new对象** 方式再次赋值,但被指向的对象中属性值是可以修改的

      private static final Integer number = 6666;
      public void addNumber(){
      	//number不能进行修改,因为number使用final修饰了,变量(基本类型)一旦被赋值,就不能被改变
      	number = 8888;
      }
      
      final Person person = new Person();
      person.name = "张三";
      System.out.println(person.name);
      
      //再次new创建新对象引用时,不能编译通过
      //person引用使用final修饰,限制了person指向堆区中的内存地址不能被修改(也就是person只能指向堆中唯一一个对象),但是,person指向的对象的属性值是可以修改的
      person = new Person();
      
    • 构造方法不能被final修饰

    • 会影响Java类的初始化,final定义的静态变量调用时不会执行java的类初始化方法,也就是说不会执行static代码块等相关语句,这是由java虚拟机规定的。

    写博客是为了记住自己容易忘记的东西,另外也是对自己工作的总结,希望尽自己的努力,做到更好,大家一起努力进步!

    如果有什么问题,欢迎大家一起探讨,代码如有问题,欢迎各位大神指正!

    给自己的梦想添加一双翅膀,让它可以在天空中自由自在的飞翔!

    展开全文
  • java中 super 关键字

    2018-04-09 15:29:09
    一,super关键字作用 1,主要存在于子类方法,用于指向子类对象父类对象 2,访问父类的属性 3,访问父类的函数 4,访问父类的构造函数二,super注意的地方 this 和 super 很像,this 指向的是当前对象的...

    一,super关键字作用

        1,主要存在于子类方法中,用于指向子类对象中父类对象

        2,访问父类的属性

        3,访问父类的函数

        4,访问父类的构造函数

    二,super注意的地方

        this 和 super 很像,this 指向的是当前对象的调用,super指向的是当前调用对象的父类。类加载完毕,创建对象,父类的构造方法会被调用(默认自动无参),然后执行子类相应构造创建了一个子类对象,该子类对象还包含了一个父类对象。该父类对象在子类内部。this  super  只能在有对象的前提下使用,不能再静态上下文使用。

    三,super关键字的使用

        1,子类的构造函数默认第一行会调用父类无参的构造函数,隐式语句 super();

     Son(int y)
     {
    	 //super();隐式语句
    	 this.y = y + x;
    	 System.out.println("这是子类的有参构造");
     }

        2,子类显示调用父类构造函数

    在子类构造函数的第一行通过 super 关键字调用父类任何构造函数。如果显式调用父类构造函数,编译器自动添加的调用父类无参的构造就消失了。构造函数间的调用只能放在第一行,只能调用一次。 super 和 this 不能同时出现在子类的构造函数里。

     Son(int y)
     {
    	 super(y); 		//子类显式调用父类构造函数
    	 this.y = y + x;
    	 System.out.println("这是子类的有参构造");
     }

    四,super 思考

        如果开发者自定义了一个类,没有显式的进行类的继承,那么该类中的成员函数是否可以使用 super 关键字??

    答:可以使用,继承了Object类,Object 类是所有类的子类。(Object类是Object类的子类???喵喵喵???)

    class Demo7
    {
    	public void print()
    	{
    		System.out.println(super.toString());
    	}
    	
    	public static void main(String[] args)
    	{
    		new Demo7().print();
    		System.out.println();
    	}
    }

    转载于:https://blog.csdn.net/qq_33642117/article/details/51919528

    展开全文
  • Java中 super关键字

    2017-04-14 09:58:08
    super关键字:在对象的内部使用,可以代表父类对象。 1.访问父类的属性 super.age; 2.访问父类的方法 super.eat(); 新建java项目演示: Init.java 是项目入口文件:package com.mydev; public class Init { /...
  • java中super关键字与this关键字的区别是什么发布时间:2020-09-01 14:58:57来源:亿速云阅读:97作者:小新这篇文章给大家分享的是有关java中super关键字与this关键字的区别是什么的内容。小编觉得挺实用的,因此...
  • 文章目录1 super关键字1.1 super用于方法1.1.1 用于构造方法1.1.2 用于普通方法1.1.2 用于属性2 super与this关键字的区别2.1 概念上2.2 查找范围2.3 特殊之处1 super关键字1.1 super用于方法1.1.1 用于构造方法子类...
  • Java中super关键字及其作用 super关键字及其作用 A:super关键字指代父类对象引用(super代表父类存储空间的标识) B:作用: a:访问被子类隐藏的父类同名成员变量和成员方法 ; b:调用父类构造方法,且必须在子类构造...
  • 文章目录1 super关键字1.1 super用于方法1.1.1 用于构造方法1.1.2 用于普通方法1.1.2 用于属性2 super与this关键字的区别2.1 概念上2.2 查找范围2.3 特殊之处 1 super关键字 1.1 super用于方法 1.1.1 用于构造...
  • JAVA中Super关键字和this关键字的使用 父类 package demo03; public class Fu { int num=10; } 子类 package demo03; public class Zi extends Fu { int num=20; public void method(){ int num=30; S...
  • java中super关键字的三种用法
  • Java中super关键字的使用(在实例方法中)super和this都可以使用在实例方法中,并且都不能使用在静态方法当中,“this”大部分情况下都是可以省略的,只有在方法中区分局部变量和实例变量的时候不能省略。那“super”...
  • Java中super关键字的三种用法: 在子类的成员方法中,访问父类的成员变量。 在子类的成员方法中,访问父类的成员方法。 在子类的构造方法中,访问父类的构造方法。
  • 一、super关键字JAVA使用super来引用父类的成分,用this来引用当前对象,如果一个类从另外一个类继承,我们new这个子类的实例对象的时候,这个子类对象里面会有一个父类对象。怎么去引用里面的父类对象呢?...
  • 1.super关键字可以在子类的构造方法显示地调用父类的构造方法,super()必须为子类构造函数的第一行。2.super可以用来访问父类的成员方法或变量,当子类成员变量或方法与父类有相同的名字时也会覆盖父类的成员...
  • JAVA中SUPER关键字的三种用法 1.在子类成员方法中,访问父类的成员变量 2.在子类的成员方法中,访问父类的成员方法 3.在子类的构造方法中,访问父类的构造方法 子类 package demo08; /* * 1.在子类成员方法中,访问...
  • 在确定薪酬水平时,中关a企业通常可以采用( )策略。键字在线大学能够帮您做什么呢?法错在线大学几个关键概念有哪些?下列选项商业画布主要包括哪几大类?中关a价值网的特征分别包括哪些?电阻的星形连接与...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,116
精华内容 1,646
关键字:

java中super关键字

java 订阅