不同类型的方法有不同的调用方式

在定义类的时候
a. 编写类的成员方法/重写继承自父类的方法时,可以直接对其他成员方法进行调用(this),而不需要显示知名对象)
b. 类的私有方法只能通过兄弟成员方法间接调用(在编写成员方法时可以调用)
c. 普通(非私有)方法通过对象(实例)调用(包括protected 和public以及(defualt))
d. 非私有构造方法可以通过new constructor()的方式来调用
i. (私有构造方法不可通过new 来调用)
e.类方法(static 方法)通过类名调用(一般地)

通过反射机制调用方法:

获取对象/类的Class实例后,

Java的反射API提供的Method对象封装了方法的所有信息:
通过Class实例的如下方法可以获取Method实例:

getMethod(),getMethods(), getDeclaredMethod(),getDeclaredMethods();

通过Method实例可以获取方法信息:

getName(),getReturnType(), getParameterTypes(),getModifiers();

通过Method实例可以调用某个对象实例(instance)的方法:invoke()方法(返回Object对象)

Object invoke(Object instance, Object… parameters);

通过设置setAccessible(true)来访问非public方法;

通过反射调用方法时,仍然遵循多态原则。