通过getInterfaces()方法取得类所实现的接口
package org.lxh.demo15.classinfodemo ;
interface China{ // 定义China接口
public static final String NATIONAL = "China" ; // 定义全局常量
public static final String AUTHOR = "李兴华" ; // 定义全局常量
public void sayChina() ; // 无参的,没有返回值的方法
public String sayHello(String name,int age) ; // 定义有两个参数的方法,并返回内容
}
public class Person implements China{
private String name ;
private int age ;
public Person(){ // 无参构造
}
public Person(String name){
this.name = name ; // 设置name属性
}
public Person(String name,int age){
this(name) ;
this.age = age ;
}
public void sayChina(){ // 覆写方法
System.out.println("作者:" + AUTHOR + ",国籍:" + NATIONAL) ;
}
public String sayHello(String name,int age){
return name + ",你好!我今年:" + age + "岁了!" ;
}
public void setName(String name){
this.name = name ;
}
public void setAge(int age){
this.age = age ;
}
public String getName(){
return this.name ;
}
public int getAge(){
return this.age ;
}
};
<strong>通过getInterfaces()方法获取类实现的接口</strong>
package org.lxh.demo15.classinfodemo ;
public class GetInterfaceDemo{
public static void main(String args[]){
Class<?> c1 = null ; // 声明Class对象
try{
c1 = Class.forName("org.lxh.demo15.classinfodemo.Person") ; // 实例化对象
}catch(ClassNotFoundException e){
e.printStackTrace() ;
}
Class<?> c[] = c1.getInterfaces() ; // 以数组形式返回实现的全部接口
for(int i=0;i<c.length;i++){
System.out.println("实现的接口名称:" + c[i].getName()) ; // 输出接口名称
}
}
};
运行结果:
实现的接口名称:org.lxh.demo15.classinfodemo.China
通过getSuperclass()取得父类
package org.lxh.demo15.classinfodemo ;
public class GetSuperClassDemo{
public static void main(String args[]){
Class<?> c1 = null ; // 声明Class对象
try{
c1 = Class.forName("org.lxh.demo15.classinfodemo.Person") ; // 实例化对象
}catch(ClassNotFoundException e){
e.printStackTrace() ;
}
Class<?> c2 = c1.getSuperclass() ; // 取得父类
System.out.println("父类名称:" + c2.getName()) ;
}
};
运行结果:
父类名称:java.lang.Object
通过getConstructors()方法取得全部构造方法
package org.lxh.demo15.classinfodemo ;
import java.lang.reflect.Constructor ; // 导入构造方法的包
public class GetConstructorDemo01{
public static void main(String args[]){
Class<?> c1 = null ; // 声明Class对象
try{
c1 = Class.forName("org.lxh.demo15.classinfodemo.Person") ; // 实例化对象
}catch(ClassNotFoundException e){
e.printStackTrace() ;
}
Constructor<?> con[] = c1.getConstructors() ; // 取得一个类中的全部构造
for(int i=0;i<con.length;i++){
System.out.println("构造方法:" + con[i]) ; // 输出构造,直接打印
}
}
};
运行结果:
构造方法:public org.lxh.demo15.classinfodemo.Person(java.lang.String,int)
构造方法:public org.lxh.demo15.classinfodemo.Person(java.lang.String)
构造方法:public org.lxh.demo15.classinfodemo.Person()