Java中super的用法

简介: Java中super的用法super用于子类调用父类方法(private保护的方法除外)#子类默认会调用父类的无参构造器(在子类无参构造器的第一行中应为super())#1、注意如果父类定义了有参构造器那么子类便无法调用默认的无参构造器,解决方法应当给父类写出显式的无参构造器,或者子类调用父类构造器时添加参数super(参数)

Java中super的用法

javayouhuiquan.jpg

super用于子类调用父类方法(private保护的方法除外)#

子类默认会调用父类的无参构造器(在子类无参构造器的第一行中应为super())#

1、注意如果父类定义了有参构造器那么子类便无法调用默认的无参构造器,解决方法应当给父类写出显式的无参构造器,或者子类调用父类构造器时添加参数super(参数);

super的注意点:#

1、super调用父类的构造方法,必须写在构造方法的第一行。

2、super必须只能能出现在子类的方法或者构造方法中

3、super和this不能同时调用构造方法。

super与this的区别#

1、代表的对象不同

this:本身调用者这个对象

super:代表父类对象的应用

this:没有继承也能用

super:只能在继承中使用

构造方法的区别

this():本类的构造

super():父类的构造

代码解析#

//执行方法
public class application {
    public static void main(String[] args) {
        /*Demo09 student= new Demo09();
        student.setName("dalao");
        student.setAge(1000);//不合法数据
        System.out.println(student.getName()+"年龄"+student.getAge());//println属于方法的重载
        student.setAge(68);//合法数据
        System.out.println(student.getAge());//println属于方法的重载
         */
        Demo11 student = new Demo11();
        student.test01("小明");
        student.test02();
    }
}
//父类方法
public class Demo10 /*extends Object*/{
    public Demo10(){
        System.out.println("父类无参构造器已执行");
    }
    protected String name="小明同学";
    public void print(){//假如此处改为private私有其实也可继承只不过应当使用类如get,set方法来访问子类不能直接调用
        System.out.println("我是父类");
    }
}
//子类方法
    public Demo11(){
        super();//子类会默认调用父类的无参构造器
        System.out.println("子类无参构造器已执行");
        //super();而且调用父类无参构造器必须放在代码第一行
    }
    private String name ="xiaomingtongxue";
    public void test01(String name){
        System.out.println(name);
        System.out.println(this.name);
        System.out.println(super.name);
    }
    public void print(){
        System.out.println("我是子类");
    }
    public void test02(){
        print();
        this.print();
        super.print();
    }

结果#

父类无参构造器已执行
子类无参构造器已执行
小明
xiaomingtongxue
小明同学
我是子类
我是子类
我是父类

作者:Cn_FallTime

出处:https://www.cnblogs.com/CnFallTime/p/15820397.html

相关文章
|
14天前
|
Java
Java中的抽象类:深入了解抽象类的概念和用法
Java中的抽象类是一种不能实例化的特殊类,常作为其他类的父类模板,定义子类行为和属性。抽象类包含抽象方法(无实现)和非抽象方法。定义抽象类用`abstract`关键字,子类继承并实现抽象方法。抽象类适用于定义通用模板、复用代码和强制子类实现特定方法。优点是提供抽象模板和代码复用,缺点是限制继承灵活性和增加类复杂性。与接口相比,抽象类可包含成员变量和单继承。使用时注意设计合理的抽象类结构,谨慎使用抽象方法,并遵循命名规范。抽象类是提高代码质量的重要工具。
26 1
|
1月前
|
前端开发 Java
java中的Queue队列的用法
java中的Queue队列的用法
19 1
|
1月前
|
XML Java 编译器
java aspectjrt AOP 用法
java aspectjrt AOP 用法
21 0
|
4月前
|
Java
【零基础学Java】—final关键字与四种用法(二十九)
【零基础学Java】—final关键字与四种用法(二十九)
|
4月前
|
Java
【零基础学Java】—this关键字的三种用法+Java继承的三个特点(二十一)
【零基础学Java】—this关键字的三种用法+Java继承的三个特点(二十一)
|
4天前
|
JSON Java 数据格式
Java QueryWrapper基本用法
Java QueryWrapper基本用法
12 2
|
1月前
|
安全 Java 开发者
Java 8 `Optional` 类的用法和优势
【2月更文挑战第15天】
13 0
|
2月前
|
Java
|
2月前
|
存储 传感器 机器学习/深度学习
Java数组全套深入探究——进阶知识阶段6、三维数组以及更多维度数组的概念和用法
Java数组全套深入探究——进阶知识阶段6、三维数组以及更多维度数组的概念和用法
45 0

热门文章

最新文章