1. 反射

获取类本身,就叫“反射”,有以下3种方式:

// 通过“实例”获取类
String str = "hello";
Class cls1 = str.getClass(); // 通过“类型”获取类
Class cls2 = String.class; // 通过“全路径字符串”获取类
Class cls3 = Class.forName("java.lang.String"); cls1.getName(); //"java.lang.String"
cls1.getSimpleName(); //"String"
cls1.getPackage().getName(); //"java.lang"

 2.多态

多态就是声明的类可以是当前类的实例或者它的各种子类实例

class Person {
public void say() {
System.out.println("Person");
}
} class Student extends Person {
@Override
public void say() {
System.out.println("Student");
}
} public static void main(String[] args) {
Person p1 = new Person();
Person p2 = new Student();
p1.say(); // "Person"
p2.say(); // "Student"
}

一种声明类可能是多种实例,这有利与Java的扩展性

05-08 08:04