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 this关键字详解(3种用法),Java程序员面试必备的知识点
Java this关键字详解(3种用法),Java程序员面试必备的知识点
|
5天前
|
存储 安全 Java
Java面向对象最新超详细总结版!
Java面向对象最新超详细总结版!
27 7
Java面向对象最新超详细总结版!
|
5天前
|
算法 Java 数据安全/隐私保护
【Java开发指南 | 第二篇】标识符、Java关键字及注释
【Java开发指南 | 第二篇】标识符、Java关键字及注释
13 5
|
5天前
|
安全 算法 Java
Java一分钟:线程同步:synchronized关键字
【5月更文挑战第11天】Java中的`synchronized`关键字用于线程同步,防止竞态条件,确保数据一致性。本文介绍了其工作原理、常见问题及避免策略。同步方法和同步代码块是两种使用形式,需注意避免死锁、过度使用导致的性能影响以及理解锁的可重入性和升级降级机制。示例展示了同步方法和代码块的运用,以及如何避免死锁。正确使用`synchronized`是编写多线程安全代码的核心。
57 2
|
5天前
|
小程序 Java 容器
03|Java基础语法:讲解标识符、关键字、变量、数据类型、运算符、控制语句(条件分支、循环)
03|Java基础语法:讲解标识符、关键字、变量、数据类型、运算符、控制语句(条件分支、循环)
10 0
|
5天前
|
Java
深入浅出Java基础语法:标识符、关键字、变量、数据类型、运算符与控制语句
深入浅出Java基础语法:标识符、关键字、变量、数据类型、运算符与控制语句
9 0
|
5天前
|
Java
java面向对象——包+继承+多态(一)-2
java面向对象——包+继承+多态(一)
18 3
|
5天前
|
SQL Java 编译器
java面向对象——包+继承+多态(一)-1
java面向对象——包+继承+多态(一)
18 2
|
5天前
|
存储 安全 Java
【亮剑】Java并发编程涉及`ThreadLocal`、`Volatile`、`Synchronized`和`Atomic`四个关键机制
【4月更文挑战第30天】Java并发编程涉及`ThreadLocal`、`Volatile`、`Synchronized`和`Atomic`四个关键机制。`ThreadLocal`为每个线程提供独立变量副本;`Volatile`确保变量可见性,但不保证原子性;`Synchronized`实现同步锁,保证单线程执行;`Atomic`类利用CAS实现无锁并发控制。理解其原理有助于编写高效线程安全代码。根据业务场景选择合适机制至关重要。
|
5天前
|
Java 编译器
【Java探索之旅】this 关键字 解决你的成员变量困惑
【Java探索之旅】this 关键字 解决你的成员变量困惑
21 0