代码出错了

父类:
package org.marsdroid;
public class Person{
protected String name;
public int age;
void eat(){
System.out.println("eat");
}
}
子类:
package com.marsdroid;
import org.marsdroid.Person;
class Student extends Person {
Person p = new Student();
void introduce(){
p.name = "zhangsan";
p.age = 10;
System.out.println("姓名:"+name+",年龄:"+age);
}
}
子类这样写就报protected类型无法访问到
子类:
package com.marsdroid;
import org.marsdroid.Person;
class Student extends Person {
Person p = new Student();
p.name = "zhangsan";
p.age = 10;
void introduce(){

    System.out.println("姓名:"+name+",年龄:"+age);
    }

}
子类这样写就报 p.name;p.age需要标识符;
我想保留protected类型,子类也想保留p.name;p.age 和输出,怎么写正确?

[code="java"]子类的 第一种方法没问题,
第二种写法是错误的,类中间可以有初始化语句但是 p.name = "zhangsan"; 这样的语句不只是变量初始化。
建议你对Person类加上带参构造函数
在 Student 的构造函数中传参。[/code]