淡谈我对this、super、final的理解

发布于 6 天前  18 次阅读


第一题

package com.apesblog.study2022;

public class TestSuper {
    
    public static void main(String[] args) {
        Son son = new Son();
    }

    static class Father {
        public String method() {
            return "father";
        }
    }
    
    static class Son extends Father {
        public String method() {
            return "son";
        }
        
        public Son() {
            System.out.println(super.method());
            System.out.println(this.method());
            System.out.println(super.getClass());
            System.out.println(this.getClass());
            System.out.println(this.getClass().getSuperclass());
        }
    }
}

对于getClass(),super有点错乱了,因为super.getClass()竟然还是Son类型。

这是因为getClass()是Object里面final修饰的,默认的返回值都是this。