日期:2014-05-20  浏览次数:20693 次

关于对象转型的问题
本人新手,刚学Java不久。求大神解决小弟的疑问,感激不尽。
请先看一段代码:
(以下程序来自这个网站:http://home.51.com/jcenpa/diary/item/10046534.html)
class 类人猿
{
private int n=100;
void crySpeak(String s)
{
System.out.println(s);
}
}
class People extends 类人猿
{
void computer(int a,int b)
{
int c=a*b;
System.out.println(c);
}
void crySpeak(String s)
{
System.out.println("**"+s+"**");
}
}
class Example4_21
{
public static void main(String args[])
{
类人猿 monkey=new People(); 
monkey.crySpeak("I love this game");
People people=(People)monkey; 
people.computer(10,10);
}
}

不可以monkey.n=1000;
因为子类本身就没有继承n?
怎么理解这句话?
Java 对象转型 上转型对象

------解决方案--------------------
引用:
本人新手,刚学Java不久。求大神解决小弟的疑问,感激不尽。
请先看一段代码:
(以下程序来自这个网站:http://home.51.com/jcenpa/diary/item/10046534.html)
class 类人猿
{
private int n=100;
void crySpeak(String s)
{
System.out.println(s);
}
}
class People extends 类人猿
{
void computer(int a,int b)
{
int c=a*b;
System.out.println(c);
}
void crySpeak(String s)
{
System.out.println("**"+s+"**");
}
}
class Example4_21
{
public static void main(String args[])
{
类人猿 monkey=new People(); 
monkey.crySpeak("I love this game");
People people=(People)monkey; 
people.computer(10,10);
}
}

不可以monkey.n=1000;
因为子类本身就没有继承n?
怎么理解这句话?

n是私有的,不能被子类继承。
------解决方案--------------------
这个关系到访问权限的问题
private 只能在本类中访问,其他类总不可以访问!!!
简单来说就是这个东西只有你自己有,但也只可以 你自己用,别人不可以用的!