本帖最后由 emos-c 于 2013-6-17 18:43 编辑
毕老师讲解地内容:当功能内部没有访问到非静态数据(对象的特有数据),那么该功能可以定义成静态的。
问题:下面代码中的dosome函数访问了其它类成员的特有属性,但是在这个程序中我用了static修饰它没有出现问题。
那么这种情况是一定的吗?就是说,只要没有访问到 本类对象的 特有数据就一定可以定义成静态的吗?
- <P>abstract class Student
- {
- public abstract void study();
- }
- class BaseStudent extends Student
- {
- String name;
- public void study()
- {
- System.out.println(name+"努力学习");
- }
- public void show()
- {
- System.out.println(name+"准备考试");
- }
- }
- class XingWei
- {
- public static void doSome(Student stu)
- {
- stu.study();
- BaseStudent bs=(BaseStudent)stu;
- bs.show();
- }
- }
- class Test
- {
- public static void main(String[] args)
- {
- BaseStudent bs=new BaseStudent();
- bs.name="张三";
- XingWei.doSome(bs);
- //打印结果 张三努力学习 张三准备考试
- }
- }
- </P>
复制代码 |