Java 面向对象 之 super 关键字

简介:

http://www.verejava.com/?id=17159596599630

/**

    this: 代表当前类的引用
        1. 当局部变量和成员变量同名时,  成员变量要加 this 限定
        2. 实例化时 可以用 this 调用当前类的构造方法,   必须写在第一行
        3. 可以用 this  调用当前类的 普通方法

    super : 代表当前父类的引用
        1. 实例化子类时,  可以用  super 调用父类的 非私有方法
        2. 实例化子类时.    可以用 super 调用父类的  构造方法 ,  必须写在第一行
        3. 在子类的方法中 , 可以用 supe 调用父类的 非私有方法.
*/
public class Test1 {

    public static void main(String[] args) {
        // 实例化 农夫

        Father father = new Father();
        father.setName("农夫");
        father.setAge(90);
        System.out.println(father.getAge() + " 岁 " + father.getName() + " 有 " + father.getWealth());

        Father father = new Father("农夫", 90);
        System.out.println(father.getAge() + " 岁 " + father.getName() + " 有 " + father.getWealth());

        Son son = new Son("农夫", 90);
        System.out.println("儿子知道父亲的 : " + son.getAge() + " 岁 " + son.getName() + " 有 " + son.getWealth());
        son.work();
    }
}

//父类
class Father {
    
    private String name;
    private int age;
    private String wealth;

    public Father() {
        wealth = "100两黄金";
    }

    public Father(String name, int age) {
        this();
        this.name = name;
        //this.age=age;
        this.setAge(90);
    }

    public void work() {
        System.out.println("耕地");
    }

    public String getWealth() {
        return wealth;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getAge() {
        return age;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}

//子类
class Son extends Father {
    public Son(String name, int age) {
        super(name, age);
        //super.setName(name);
        //super.setAge(age);
    }

    public void work() {
        super.work();
        System.out.println("儿子 寻找黄金宝藏");
        System.out.println("只有通过自己的勤奋劳动, 才能得到果实 是最大的宝藏");
    }
}

http://www.verejava.com/?id=17159596599630

目录
相关文章
|
3月前
|
Java
Java基础语法与面向对象
重载(Overload)指同一类中方法名相同、参数列表不同,与返回值无关;重写(Override)指子类重新实现父类方法,方法名和参数列表必须相同,返回类型兼容。重载发生在同类,重写发生在继承关系中。
145 1
|
3月前
|
存储 Java 关系型数据库
Java 项目实战基于面向对象思想的汽车租赁系统开发实例 汽车租赁系统 Java 面向对象项目实战
本文介绍基于Java面向对象编程的汽车租赁系统技术方案与应用实例,涵盖系统功能需求分析、类设计、数据库设计及具体代码实现,帮助开发者掌握Java在实际项目中的应用。
125 0
|
4月前
|
安全 Java 编译器
Java面向对象
本文深入讲解了Java面向对象编程(OOP)的四大特性:封装、继承、多态与抽象,以及方法的设计与使用。通过示例展示了如何用类和对象组织代码,提升程序的可维护性与扩展性。
|
5月前
|
存储 Java 测试技术
Java基础 - 面向对象
面向对象编程是Java的核心,包含封装、继承、多态三大特性。封装隐藏实现细节,提升代码可维护性与安全性;继承实现类间IS-A关系,支持代码复用;多态通过继承、重写与向上转型,实现运行时方法动态绑定,提升系统扩展性与灵活性。
|
7月前
|
人工智能 Java 编译器
Java:面向对象
本文介绍了Java编程中的核心概念,包括包的命名规范与自动导入机制、构造方法的特点与使用、`this`和`super`关键字的作用、继承的基本规则、访问权限的设置、封装的意义、多态的实现原理以及`static`关键字的用法。通过详细解析每个知识点,并结合代码示例,帮助读者深入理解Java面向对象编程的核心思想与实践技巧。内容适合初学者及进阶开发者学习参考。
167 0
|
搜索推荐 Java
Java的面向对象特性主要包括封装、继承和多态
【4月更文挑战第5天】Java的面向对象特性主要包括封装、继承和多态
180 3
|
Java 程序员 编译器
【详识JAVA语言】面向对象程序三大特性之二:继承
【详识JAVA语言】面向对象程序三大特性之二:继承
171 2
|
Java 开发者
Java 面向对象新视界:揭秘子类如何“继承”父类精华,再添“创新”之笔
【6月更文挑战第16天】在Java的面向对象世界,子类继承父类的特性,如`Circle`继承`Shape`,展示“is-a”关系。子类不仅保留父类的`color`和`display`方法,还添加了`radius`属性及定制的显示逻辑。这种继承与创新允许代码复用,增强灵活性和可扩展性,使得构建复杂系统变得更加高效和模块化。通过持续的继承与定制,开发者能构建出一系列独具特色的类,充分展现面向对象编程的力量。
268 57
|
Java 编译器
Java面向对象(三)详解: 封装 | 继承 | 方法重写 | 抽象类
Java面向对象(三)详解: 封装 | 继承 | 方法重写 | 抽象类
244 2
|
Java 数据安全/隐私保护 开发者
Java是一种完全支持面向对象编程的语言,其面向对象特性包括封装、继承、多态和抽象等
【6月更文挑战第18天】**面向对象编程(OOP)通过对象封装状态和行为,实现问题域的抽象。Java全面支持OOP,核心特性包括**: - **封装**:保护数据安全,隐藏内部细节。 - **继承**:子类继承父类属性和行为,促进代码重用。 - **多态**:一个接口多种实现,增强灵活性和扩展性。 - **抽象**:通过接口和抽象类抽离共性,简化复杂性。 **Java的OOP便于理解和解决复杂系统问题。**
228 3