class
Person{
private
int
age;
private
String name;
public
Person(){
}
public
Person(
int
age, String name){
this
.age = age;
this
.name = name;
}
public
int
getAge() {
return
age;
}
public
void
setAge(
int
age) {
this
.age = age;
}
public
String getName() {
return
name;
}
public
void
setName(String name) {
this
.name = name;
}
}
class
SuperMan
extends
Person
implements
ActionInterface
{
private
boolean
BlueBriefs;
public
static
void
fly()
{
System.out.println(
"超人会飞耶~~"
);
}
public
boolean
isBlueBriefs() {
return
BlueBriefs;
}
public
void
setBlueBriefs(
boolean
blueBriefs) {
BlueBriefs = blueBriefs;
}
@Override
public
void
walk(
int
m) {
// TODO Auto-generated method stub
System.out.println(
"超人会走耶~~走了"
+ m +
"米就走不动了!"
);
}
}
interface
ActionInterface{
public
static
int
nonono =
1
;
public
void
walk(
int
m);
}
通过以下代码可以获取该对象的父类:
方法1:
SuperMan superMan =
new
SuperMan(
10
,
"LL"
);
try
{
//Field field = person.getClass().getDeclaredField("name");
Field field = superMan.getClass().getSuperclass().getDeclaredField(
"name"
);
field.setAccessible(
true
);
field.set(superMan,
"ERWA"
);
System.out.println(superMan.getName());
}
catch
(NoSuchFieldException | IllegalAccessException e) {
e.printStackTrace();
}
方法2:
public
static
void
main(String[] args)
throws
Exception {
Class<?> clazz =
null
;
clazz = Class.forName(
"bianchengzhimei.SuperMan"
);
Object p1 = clazz.newInstance();
Field personNameField =
null
;
for
(;clazz != Object.
class
;clazz= clazz.getSuperclass()){
try
{
personNameField = clazz.getDeclaredField(
"name"
);
}
catch
(Exception e) {}
}
personNameField.setAccessible(
true
);
personNameField.set(p1,
"darlingFish"
);
System.out.println(personNameField.get(p1));
}
获取该对象
SuperMan superMan =
new
SuperMan(
10
,
"LL"
);
try
{
//Field field = person.getClass().getDeclaredField("name");
Field field = superMan.getClass().getDeclaredField(
"name"
);
field.setAccessible(
true
);
field.set(superMan,
"ERWA"
);
System.out.println(superMan.getName());
}
catch
(NoSuchFieldException | IllegalAccessException e) {
e.printStackTrace();
}