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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 xiao7181jun 于 2015-5-8 23:47 编辑
  1. class Person {
  2.         public String hair;
  3.         public String skin;
  4.         private String sex;//私有化变量,不可直接被调用。需要在本类设置公共的访问方法。
  5.         private int height;

  6.         public Person() {}//无参构造函数,作用是初始化对象的成员变量。当定义了有参变量的话必须要手动添加无参构造函数。
  7.         //因为手动设置了有参函数的话系统就不会再创建默认的无参函数了。
  8.         
  9.         public Person(int height,String sex) {   //这是有参构造函数。
  10.                 this.height = height;
  11.                 this.sex = sex;
  12.         }
  13.         public void show() {    //本类中的方法是可以访问本类的私有变量的,利用这个公共的方法来赋值私有变量。
  14.                 System.out.print(sex+","+height);
  15.         }
  16.         
  17. /*        public void setPerson(String sex,int height) { //用Person中的方法,把Student里参数赋的值  利用this 赋给Person的私有成员变量。
  18.                 this.sex = sex;
  19.                 this.height = height;
  20.         }
  21.         public String getSex() {  //把sex值 返回给调用者
  22.                         return sex;}
  23.         public int getHeight() {
  24.                         return height;}
  25. */
  26. }
  27. class School {
  28.         public String teach;//教育的意思
  29.         public String study;
  30.         private String name;
  31.         private int tuition; //这个单词不熟(学费的意思),导致下面的单词拼错!!耽误时间!!

  32.         public School() {}
  33.         public School(String name,int tuition) {
  34.                 this.name = name;
  35.                 this.tuition = tuition;
  36.         }
  37.         public void show() {
  38.                 System.out.print(name+","+tuition);
  39.         }
  40. /*        public void setSchool(String name,int tuition) {
  41.                 this.name = name;
  42.                 this.tuition = tuition;
  43.         }
  44.         public String setName() {
  45.                 return name;}
  46.         public int setTuition() {
  47.                 return tuition;}
  48. */
  49. }

  50. class Student extends Person {        //继承Person的子类
  51.         
  52.         public Student() {}
  53.         public Student(int height,String sex) {
  54.         super(height,sex);        
  55.         }
  56. //在父类中也建了一个方法名字叫show,然后出现问题显示NULL(空值),
  57. //原来是这句话搞的鬼!!子类里的方法发生的“重写”,把我想调用的父类Person里的值给覆盖掉了,
  58. //显示了这个当时还没有被没赋值的“hair”!!!
  59.         //public void show() {   
  60.         //System.out.println(hair);}
  61. }



  62. class CaiMao extends School { //继承School的子类
  63.         public CaiMao() {}
  64.         public CaiMao(String name,int tuition) {
  65.                 super(name,tuition);
  66.         }

  67. }



  68. class ExtendsDemo2 {  //测试类

  69.         public static void main(String[] args) {
  70. /*
  71. //方式一:
  72.                 Student s = new Student();  //创建 对象
  73.                         s.hair ="黄头发"; //赋值
  74.                         s.skin ="黄皮肤";
  75.                         s.setPerson("男",158); //在对象Student下的赋值都需要加 s.  没注意爆了好多错。
  76.                         System.out.println(s.hair+","+s.skin+","+s.getHeight()+","+s.getSex());  //在子类对象中输出其父类的私用的与公共的参数。
  77.                         s.show();
  78.                 JiSuanJi j = new JiSuanJi();
  79.                         j.teach = "教育";
  80.                         j.study = "学习";
  81.                         j.setSchool("计算机学院",8888);
  82.                         System.out.println(j.teach+","+j.study+","+j.setTuition()+","+j.setName());
  83. */

  84. //方式二:
  85.         Student s1 = new Student(188,"男");
  86.                 s1.show();
  87.                 s1.hair = "黄头发";
  88.                 s1.skin = "黄皮肤";
  89.                 System.out.println(","+s1.hair+","+s1.skin);
  90.         
  91.         CaiMao t1 = new CaiMao("财贸学院",8888);
  92.                 t1.show();
  93.                 t1.teach = "教育";
  94.                 t1.study = "学习";
  95.                 System.out.println(","+t1.teach+","+t1.study);
  96.         }

  97.         
  98. }
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马