java getClass()的一些小实验

最近做的一些笔试题经常遇到考 getClass()方法相关的知识点,今天整理出来总结下。
先来定义两个类:
People类是父类,Student类继承自父类。

class People {
    String name;
    int age;
    // 父类无参构造方法
    People () {}
    People (String name, int age) {
        this.name = name;
        this.age = age;
    }
    void  sayHello () {
        System.out.print("Hello, I am a people. my name is" + name);
    }
}

class Student extends People{
    String name;
    int age;

    Student (String name, int age) {
        this.name = name;
        this.age = age;
    }

    void  sayHello (String name, int age) {
        System.out.print("Hello, I am student. my name is" + name);
    }
}

分别创建两个对象,并调用getClass()方法

public class Main {

    public static void main(String[] args) {
          People man = new People("狗蛋",26);
          People stu = new Student("小明",18);

          System.out.print(man.getClass()); // 输出 class People
          System.out.print(man.getClass().getName()); // 输出 People
          System.out.print(stu.getClass()); // 输出 class Student
          System.out.print(stu.getClass().getName()); // 输出 Student
    }
}

再来看一个类型消除相关的知识点。

public class Main {

    public static void main(String[] args) {
        ArrayList<Integer> list1 = new ArrayList<>();
        list1.add(1);
        ArrayList<String> list2 = new ArrayList<>();
        list2.add("1");
        System.out.print(list1.get(0).getClass()); // 输出 class java.lang.Integer
        System.out.print(list2.get(0).getClass()); // 输出 class java.lang.String

        // java在编译时会进行类擦除,两者都是java.util.ArrayList
        System.out.print(list1.getClass() == list2.getClass()); // 输出 true
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值