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

    千次阅读 2017-05-03 13:25:40
    在类方法中 super关键字可以调用当前类从父类继承过来的方法(类方法也能被子类继承,父类中的类方法可以使用父类名来调用,也可以使用子类名调用。再子类的类方法中,也可以用super来调用复用的类方法)  

    super关键字:

        1.可以用在类方法和对象方法中。

        2.在对象方法中可以使用super 关键字,调用当前对象从父类继承过来的对象方法。

        3.在类方法中 super关键字可以调用当前类从父类继承过来的方法(类方法也能被子类继承,父类中的类方法可以使用父类名来调用,也可以使用子类名调用。再子类的类方法中,也可以用super来调用复用的类方法)

     

     

     子类从父类继承:相当于模板中拥有父类莫看中的所有的成员。创建以各子类对象,仍然是根据模板来创建,子类对象中既有子类的成员,也有父类的成员

     

     

     super 特指这个方法是从父类继承过来的/super是指当前类或者对象的这个方法是从父类继承过来的


    父类Person.m文件中的

    #import "Person.h"

    @implementation Person

    -(void)sayHi

    {

        NSLog(@"我是person类的sayHi方法");

    }

    +(void)hehe

    {

        NSLog(@"我是类方法hehe");

    }

    @end




    Student继承父类Person的。m文件中

    1.子类从父类继承:相当于模板中拥有父类莫看中的所有的成员。创建以各子类对象,仍然是根据模板来创建,子类对象中既有子类的成员,也有父类的成员

     2.super 特指这个方法是从父类继承过来的/super是指当前类或者对象的这个方法是从父类继承过来的

    对象方法或者类方法都是对应的


    #import "Student.h"

    @implementation Student


    -(void)study

    {

        [self sayHi];

        [super sayHi];

        NSLog(@"好好学习天天向上");

        

    }


    +(void)hah{

        [self hehe];

        [Person hehe];

        [Student hehe];

        [super  hehe];

        NSLog(@"我是类方法的hah");

    }

    @end






    展开全文
  • 一、super关键字作用 1、子类在构造方法中显示调用父类构造方法 super可以在子类的构造方法中显示调用父类的构造方法;并且这行代码必须出现在子类构造方法的第一行。原因:因为父类构造方法没有执行之前父类...

    、super关键字的作用

      1、子类在构造方法中显示调用父类构造方法

          super可以在子类的构造方法中显示调用父类的构造方法;并且这行代码必须出现在子类构造方法的第一行。原因:因为父类构造方法没有执行之前父类的属性和方法还没有被创建,则子类不能继承父类的属性和方法,因此子类的构造方法不能被执行。

    /**
     * 子类:构造方法的第一行要保证显示或者隐式的调用构造方法
     * @author Administrator
     *
     */
    public class Teacher extends Person {
        //继承自父类的空构造函数
        public Teacher() {
            
        }
        public Teacher(String name, int age, String gender) {
    //1. 出现在子类构造函数的第一行,用于调用父类的构造方法
    super(name, age, gender); } private String course; public void teach() { System.out.println("教..."); } }

      2.可以在子类中充当临时父类对象

         可以在子类内部代表父类对象,从而在子类中访问父类的属性和方法

    class Person01 {
        private String name;
        private int age;
        public void say() {
            System.out.println("人说....");
            return null;
        }
        public void eat() {
            System.out.println("人吃....");
        }
    }
    class Teacher01 extends Person01 {
        @Override
        public C say() {
            System.out.println("老师在一本正经的说...");
            return null;
        }
        //注解的作用:防止开发者误写,起到提示作用
        @Override
        public void eat() {
            System.out.println("洗个手");
            //2. super作用:super类似于父类的虚拟对象
            super.eat();
            System.out.println("抽根烟...");
        }
    }

     二、this关键字的作用

      1、代表当前对象

         在类的内部永远代表正在执行此代码的对象;在成员方法和构造方法内部,都可以通过this来明确访问类中的成员属性和成员方法。

    public class Person03 {
        String name;
        int age;
        //构造代码块:直接在类中编写一对大括号,构造代码块可以访问到之前定义的属性
        { 
            System.out.println("构造代码块!" + name);
        }
        
        { 
            say();
            
            System.out.println("构造代码块2!" + this);
        }
        
        public Person03(){
            System.out.println("构造方法!");
        }
        public Person03(String name, int age) {
    //1. 指向无参构造方法
    this();
    //2. 代表正在执行此代码的对象
    this.name = name; this.age = age; } void say() { System.out.println("成员方法说动作"); } { say(); System.out.println("构造代码块3!"); } public static void main(String[] args) { Person03 p = new Person03(); p.say(); //匿名创建对象:创建对象只会用一次并且立即使用,而不用赋值给一个引用,即为创建了一个匿名对象 new Person03().say(); } }

      2、指向某个构造方法

      在构造方法内部通过this(参数列表),可以调用其他构造方法。

    注意:使用这种用法时,this()必须出现在当前构方法的第一行

    三、super和this的共同点和区别

           共同点:super和this都可以代表一个临时对象执行构造函数,并且都要放在构造函数的第一行;

           不同点:super一般用在子类中,用于代表父类的对象;this用于当前类中,用于代表正在执行该代码的对象。

     

    转载于:https://www.cnblogs.com/chhyan-dream/p/10685961.html

    展开全文
  • 注意:使用super关键字和this关键字,均不能用在静态方法中,只能用在普通方法(实例方法)中。 访问属性: 示例: 父类 public class FatherClass{ public int age=18; } 子类 public c
    super关键字:
    使用super可以调用父类的成分:父类的成员变量、父类的方法、父类的构造方法。

    注意:使用super关键字和this关键字,均不能用在静态方法中,只能用在普通方法(实例方法)中。

    访问属性:
    示例:

    父类
      public class FatherClass{
          public int age=18;
        }
    

    子类

    public class ChildClass extends FatherClass{
          public int age = 10;
     
          public void test1(){
            System.out.println(this.age);//这里将输出 10,访问的是自己(本类)的属性
          }
          public void test2(){
            System.out.println(super.age);//这里将输出 18,访问的是父类的属性
          }
          public void test3(){
          System.out.println(age);//这里将输出 10;默认情况,如果父类存在age属性,子类也存在age属性,直接访问age将是以 this.age 形势访问。但如果本类不存在age属性,则将以 super.age 的形势访问。
          }
          
        }
    


    访问方法:
    示例:

    父类

      public class FatherClass{
          public void show(){
            System.out.println("Father类方法");
          }
        }

    子类
      
    public class ChildClass extends FatherClass{
          public void show(){
            System.out.println("Child类方法");
          }
          
          public void test1(){
            this.show();//这里将输出:Child类方法
          }
          public void test2(){
            super.show();//这里将输出:Father类方法
          }
          public void test3(){
          	show();//这里将输出:Child类方法;
            
          //默认情况,如果父类存在show()方法,子类也存在show()方法,直接访问show()方法将是以 this.show() 形势访问。但如果本类不存在show()方法,则将以 super.show() 的形势访问。
          }
          
        }

    this和super的区别:
    super 是使用在继承关系中,主要是用于子类调用父类的构造方法和普通方法
    构造方法调用方式:super(参数列表);
    普通方法调用方式:super.方法名称

    this 只能在本类中使用 this(参数列表)或者this()




    展开全文
  • super关键字使用

    千次阅读 2018-12-06 11:06:14
    super关键字直接引用父类的实例变量通过 super 来调用父类方法使用super来调用父类的构造函数 java中的super关键字是一个引用变量,用于引用直接父类对象。 super关键字用法如下: 可以用来引用直接父类的实例变量...


    java中的super关键字是一个引用变量,用于引用直接父类对象。
    super关键字用法如下:

    • 可以用来引用直接父类的实例变量。
    • 可以用来调用直接父类方法。
    • 可以用于调用直接父类构造函数。

    直接引用父类的实例变量

    可以使用super关键字来访问父类的数据成员或字段。 如果父类和子类具有相同的字段,则使用super来指定为父类数据成员或字段。
    示例:

    class Animal {
        String color = "white";
    }
    
    class Dog extends Animal {
        String color = "black";
    
        void printColor() {
            System.out.println(color);                                                 // prints color of Dog class
            System.out.println(super.color);                                      // prints color of Animal class
        }
    }
    
    class TestSuper1 {
        public static void main(String args[]) {
            Dog d = new Dog();
            d.printColor();
        }
    }
    

    输出结果

    black
    white
    

    通过 super 来调用父类方法

    super关键字也可以用于调用父类方法。 如果子类包含与父类相同的方法,则应使用super关键字指定父类的方法。 换句话说,如果方法被覆盖就可以使用 super 关键字来指定父类方法。
    示例

    class Animal {
        void eat() {
            System.out.println("eating...");
        }
    }
    
    class Dog extends Animal {
        @override
        void eat() {
            System.out.println("eating bread...");
        }
    
        void bark() {
            System.out.println("barking...");
        }
    
        void work() {
            super.eat();
            bark();
        }
    }
    
    class TestSuper2 {
        public static void main(String args[]) {
            Dog d = new Dog();
            d.work();
        }
    }
    

    结果

    eating...
    barking...
    

    使用super来调用父类的构造函数

    示例

    class Animal {
        Animal() {
            System.out.println("animal is created");
        }
    }
    
    class Dog extends Animal {
        Dog() {
            super();
            System.out.println("dog is created");
        }
    }
    
    class TestSuper3 {
        public static void main(String args[]) {
            Dog d = new Dog();
        }
    }
    

    输出结果

    animal is created
    dog is created
    

    实例

    class Person {
        int id;
        String name;
    
        Person(int id, String name) {
            this.id = id;
            this.name = name;
        }
    }
    
    class Emp extends Person {
        float salary;
    
        Emp(int id, String name, float salary) {
            super(id, name);// reusing parent constructor
            this.salary = salary;
        }
    
        void display() {
            System.out.println(id + " " + name + " " + salary);
        }
    }
    
    class TestSuper5 {
        public static void main(String[] args) {
            Emp e1 = new Emp(1, "ankit", 45000f);
            e1.display();
        }
    }
    

    结果

    1 ankit 45000.0
    
    展开全文
  • Java super关键字使用

    2017-05-16 15:44:36
    Java super关键字使用demo
  • super关键字的简单使用

    千次阅读 2019-06-02 20:35:43
    java中子类不继承父类的构造方法,但是我们需要使用到父类的构造方法时可以利用super关键字来调用父类的构造方法,super调用父类的构造方法例子如下 package test; class Student{ int number; String name; ...
  • 1.super关键字和this关键字的区别? super关键字: 表示父类对象的引用,只能在子类中使用 可以使用 super() 调用父类的构造方法,必须位于第一行 可以使用 super. 访问父类的属性方法,解决父类子类中成员同名...
  • 主要介绍了Java super关键字使用方法详解的相关资料,希望通过本文能帮助到大家,让大家对super关键字彻底掌握,需要的朋友可以参考下
  • Java中this与super关键字的对比使用.pdf
  • this表示当前对象引用(并不是当前对象),可以借助this来访问对象的字段方法。 this关键字的作用: ...super关键字作用: 调用父类的构造方法 去访问被隐藏的父类的属性 去调用被覆写的父类的方法 ...
  • //super class FatherClass{ public int value; public void f(){ value=100; System.out.println("FatherClass"+value); } ...class ChildClass extends ...作用:当我们要调用父类方法时使用。所以,无论何时,
  • this super 关键字作用   this 是对象内部指代自身的引用,同时也是解决成员变量局部变量同 名问题;this 可以调用成员变量,不能调用局部变量;this 也可以调用成员 方法,但是在普通方法中可以省略 this,在...
  • Super关键字使用

    2019-03-10 22:46:35
    子类重写父类的方法的时候,一般会覆盖父类的方法。假如,我们要调用父类的方法,那么我么们该怎么办了。...Super关键字和this关键字是非常的像的。this代表了本类的对象,Super关键字代表了父类的对象 ...
  • 1.super关键字作用 访问父类中的成员变量,方法,以及构造函数 使用形式为super(),super.i,super.method() 2.this关键字的作用 访问本类中的成员变量,方法以及构造函数 使用新式同super
  • 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关键字super关键字与this关键字的区别

    千次阅读 多人点赞 2018-10-21 16:31:33
    文章目录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 用于构造...
  • this和super关键字作用区别 this:是对象对自身的引用,没有继承也可以使用,调用本类的构造 super:对父类对象的引用,只能在继承条件下使用,调用父类的构造 super注意点: super调用父类的构造方法,必须在...
  • super关键字

    2019-10-11 11:36:50
    super关键字 指代父类对象: 子类重写父类方法后,无法再访问父类的被重写...1.使用super关键字访问父类的成员变量,成员方法; 2.使用super关键字访问父类的构造方法(必须位于第一行,且只能执行一次); ...
  • this: 对象内部指代自身的引用 解决成员变量局部变量同名问题 可以调用成员变量 不能调用局部变量 可以调用成员方法 在普通方法中可以省略... 可以调用父类的构造方法,只限构造方法中使用,且必须是第一条...
  • super关键字和final关键字 ***super关键字的用法:*** 1 在子类当中如果想要调用父类当中的构造方法时,可以用super调用,并且在构造方法中一直使用super调用父类的构造方法直到Object类,因为Object类是所有类的...
  • java中superthis的异同 super在一个类中用来引用其父类的成员。...super关键字作用在于当前子类中覆盖了父类中的某个成员变量,或者重写了父类的某个成员方法时还能够访问到父类的成员变量成员方法。如...
  • java的super关键字使用super关键字的一般用法super关键字修饰方法super调用构造器 文章内容选自尚硅谷 super关键字的一般用法 super关键字可用于可用于解决子父类出现同名属性的情况,用super关键字来声明某个属性...
  • Java中super关键字及其作用

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

    千次阅读 多人点赞 2020-07-06 22:52:15
    super关键字使用: (1)super是一个关键字; (2)superthis很类似,我们对比着学习。 先复习一下this关键字的使用。 this关键字: this能出现在实例方法构造方法中; this的语法是“this.”“this()”; ...
  • super关键字作用

    2019-09-11 21:01:47
    但是必须是在子类的构造方法中使用super关键字来调用. 语法格式:super([参数列表]); 如果父类的构造方法中包括参数,则参数列表为必选项,用于指定父类构造方法的入口参数. 2.操作被隐藏的成员变量...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 183,775
精华内容 73,510
关键字:

super关键字的作用和使用