最近刚开始学java,Thinking in java看到第七章,遇到一些问题,请各位达人指导一下// 我的基础类
package baseclass;public class MybaseCLS 
{
protected String name;
public MybaseCLS(String inname)
{
name=inname;
}
public MybaseCLS()
{
System.out.println("1. MybaseCLS inited!!!");
}
private void mysetName(String inname)
{
name=inname;
}
public void setName(String inname)
{
this.mysetName(inname);
}
public String getName()
{
return name;
}
}// 从基础类继承下来
package mychild;import baseclass.*;public class ChildCLS extends MybaseCLS
{
public ChildCLS()
{
System.out.println("2. ChildCLS inited!");
}
public ChildCLS(String inname)
{
System.out.println("3. ChildCLS inited!!!");
}
private int age;
public void setAge(int i_age)
{
age=i_age;
}
public int getAge()
{
return age;
}
public void setName(String inname)
{
this.name="My wife is " + inname;
}
}
// 测试代码
public class testout 
{
public static void main(String[] args)
{
MybaseCLS mychild=new ChildCLS("HaHa");
mychild.getClass();        // 成功!
mychild.setName("HuHu");   // 成功!!
/* ----------- 以下2句错误!!!??? 
mychild.setAge(18);
mychild.getAge();
*/
}
}难道因为mychild 是用基类声明的,所以虽然我赋予了子类的对象,但是子类自身特有的方法与属性就不可用???(声明给定了内存空间??)
还有一个问题!!
Thinking in java 第七章
7.6.4 static内部类
为正确理解static在应用于内部类时的含义,必须记住内部类的对象默认持有创建它的那个封装类的一个对象的句柄。然而,假如我们说一个内部类是static的,这种说法却是不成立的。static内部类意味着:
(1) 为创建一个static内部类的对象,我们不需要一个外部类对象。
(2) 不能从static内部类的一个对象中访问一个外部类对象。
但在存在一些限制:由于static成员只能位于一个类的外部级别,所以内部类不可拥有static数据或static内部类。
这个实在是没有看懂……他所谓的外部对象是指???(我试验时,static 内部类用其他类的对象没有出现问题啊????)
求教达人!