A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 习惯就好 于 2015-3-1 12:41 编辑

请高手帮我这菜鸟解答一下
  1. class person
  2. {
  3.         private String name;
  4.         private String sex;
  5.         person()
  6.         {
  7.                 name="zhangshan";
  8.                 sex="nan";
  9.         }
  10.         private void show()
  11.         {
  12.                 System.out.println(name+"  "+sex);
  13.         }
  14. }
  15. class student
  16. {
  17.         private void show()
  18.         {
  19.                 System.out.println("lisi"+"   "+"nan");
  20.         }
  21. }
  22. class  jcdemo
  23. {
  24.         public static void main(String[] args)
  25.         {
  26.                 //System.out.println("Hello World!");
  27.                 student st=new student();
  28.                 st.show();
  29.         }
  30. }
复制代码

Dos命令行中提示我说28行的show()可以使用访问private   。我知道可以所以覆写,但为什么编译不通过呢?——————求高手帮小弟解答一下!

5 个回复

倒序浏览
你把方法都用private修饰后,表示这些方法只能在类的内部调用,不能在外部调用,所以28行stu.show()这句话编译错误,编译器提示你不能访问用private修饰的show()方法,将private改成public,表示这个方法是公有的,可以被类的任何实例对象调用。
回复 使用道具 举报
private的方法是不能被外部调用的,那个Student应该是继承自Person的吧,应该这样写:
  1. //private的方法是不能被外部调用的,那个Student应该是继承自Person的吧,应该这样写:
  2. class Person//类名最好大写
  3. {
  4.         private String name;
  5.         private String sex;
  6.         Person()
  7.         {
  8.                 name="zhangshan";
  9.                 sex="nan";
  10.         }
  11.         public void show() // 这里改成public
  12.         {
  13.                 System.out.println(name+"  "+sex);
  14.         }
  15. }
  16. class Student extends Person //Student 继承自 Person
  17. {
  18.         public void show() // 这里也改成public
  19.         {
  20.                 System.out.println("lisi"+"   "+"nan");
  21.         }
  22. }
  23. class  jcdemo
  24. {
  25.         public static void main(String[] args)
  26.         {
  27.                 //System.out.println("Hello World!");
  28.                 Student st=new Student(); // 使用大写的Student
  29.                 st.show();
  30.         }
  31. }
复制代码


22.png (2.28 KB, 下载次数: 20)

运行结果

运行结果
回复 使用道具 举报
好刷分的我是
回复 使用道具 举报
Hsidar 发表于 2015-3-1 11:44
private的方法是不能被外部调用的,那个Student应该是继承自Person的吧,应该这样写:

恩   知道了,谢谢!:loveliness:
回复 使用道具 举报
alvis2015 发表于 2015-3-1 11:42
你把方法都用private修饰后,表示这些方法只能在类的内部调用,不能在外部调用,所以28行stu.show()这句话 ...

恩  已解决!谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马