行走

  • 首页
  • 关于

继承相关

分类:java programme日期:2011-11-22作者:wikier.ren

package com.iwikier.jichengzuoye;

public class Person {
     private String name;
     private String gendar;
     private int age;
    
     //无参构造方法中,也可以加入赋值语句对对象进行初始化的;
     public Person(){
     this.gendar = “nan”;
     }
    
     public Person(String g){
      this.gendar = g;
     }
    
     public Person(String n, String g, int a){
      this.name = n;
      this.gendar = g;
      this.age = a;
     }
    
    
     public String getName() {
  return name;
 }

 public void setName(String name) {
  this.name = name;
 }

 public String getGendar() {
  return gendar;
 }

 public void setGendar(String gendar) {
  this.gendar = gendar;
 }

 public int getAge() {
  return age;
 }

 public void setAge(int age) {
  this.age = age;
 }

 public void print(){
      System.out.println(“名字:” + this.name + “\n性别:” + this.gendar + “\n年龄:” + this.age);
     }
}

 

package com.iwikier.jichengzuoye;

//在做继承是父类必须有默认构造方法
public class Student extends Person{
   private String nianji; //调用父类方法不能显示该属性,因此如果从父类继承的方法不能满足子类的需求,在子类中可以对父类的   同名方法 重写

   public Student(){
    this.nianji = “gaoshan”;
   }
  
   //一个参数的构造方法
   public Student(String ni){
    //用super调用父类是,一定要放在第一行,否则会报错
    //用super.是无法调用父类的构造方法的,因此要用如下的方式:
    super(“nv”);  //执行父类中相应的有参构造方法,而不调用父类中无参构造方法
    this.nianji = ni;
   }
  
   /*
    * 继承条件下构造方法的三条规则
    * 1.如果子类的构造方法中没有通过super显示调用父类的有参构造方法,也没有通过this显示调用自身的其他构造方法,则系统会默认先调用父类的无参构造方法;
    * 2.如果子类的构造方法中显示调用父类的有参构造方法,那就执行父类的相应构造方法,而不执行父类的无参构造方法;
    * 3.如果子类的构造方法中通过this显示调用自身的其他构造方法,在相应构造方法中应用以上两条规则
    *
    * 在类中显示创建有参构造方法,那么系统就不会自动创建无参构造方法,若要使用,则需要主动创建无参构造方法
    */
   public Student(String n, String g, int a, String ni){
    super(n,g,a);
    this.nianji = ni;
   }

public String getNianji() {
 return nianji;
}

public void setNianji(String nianji) {
 this.nianji = nianji;
}
  
//方法重写,也称方法覆盖,是子类中根据需求对父类继承的方法进行重新编写
/*
 * 方法重写必须满足的几个要求:
 * 1.必须具有相同的方法名;
 * 2.必须具有相同的参数列表;
 * 3.返回值类型必须相同或者是其子类型;
 * 4.不能缩小被重写方法的权限。
 *
 * 重写也可以使用source  override methods进行方法重写
 * 方法经重写后优先执行重写后的方法
 */
   public void print(){
    super.print(); //用于保留父类的方法; super代表当前对象对直接父类对象的默认引用
    //super必须出现在子类中(子类的方法和构造方法中),而不是其他位置;
    //super用以访问父类成员,例如父类的属性,方法,构造方法;
    //super有访问权限限制,无法访问父类的private成员
    System.out.println(“年级:” + this.nianji + “\n”); //只是增加父类中方法要输出的内容
   }
}

 

package com.iwikier.jichengzuoye;

public class Teacher extends Person{
      private String kemu;
     
      public Teacher(String n, String g, int a, String k){
       super(n,g,a);
       this.kemu = k;
      }
     
      public String getKemu(){
       return this.kemu;
      }
     
      public void setKemu(String kemu){
       this.kemu = kemu;
      }

 @Override
 public void print() {
  // TODO Auto-generated method stub
  super.print();
  System.out.println(“教学科目:” + this.kemu + “\n”);
 }
     
     
}

 

package com.iwikier.jichengzuoyetest;
import com.iwikier.jichengzuoye.*;

public class PersonTest {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
       Student li = new Student(“litao”, “nan”, 12, “gaosan”);
       li.print();
      
       Teacher wang = new Teacher(“wang dong”, “nv”, 28, “maths”);
       wang.print();
      
       //由此可以说明,在调用子类无参情况下,系统也会默认去调用父类无参的构造方法,因此显示创建无参构造方法是必要的。
       Student xtest = new Student();
       System.out.println(xtest.getNianji());
       System.out.println(xtest.getGendar());
      
       //一个参数对象的测试
       Student xtest1 = new Student(“dayi”);
       System.out.println(xtest1.getNianji());
       System.out.println(xtest1.getGendar());
      
 }

}


分享到:



Tags: jiava , 继承
  • 上一篇:《5分钟和陌生人成为朋友》
  • 下一篇:坦然的生活
0条评论

暂时没有评论!

发表评论 点击取消评论.

*必填

*必填

分类目录

  • java programme
  • 思维导图
  • 思考
  • 生活
  • 阅读品鉴

 

2012 年二月
一 二 三 四 五 六 日
« 一    
 12345
6789101112
13141516171819
20212223242526
272829  

功能

  • 登录
  • 文章 RSS
  • 评论 RSS
  • WordPress.org

链接表

  • Documentation
  • Plugins
  • Suggest Ideas
  • Support Forum
  • Themes
  • WordPress Blog
  • WordPress Planet
Copyright © 2011-2012 行走 All rights reserved.
Powered by WordPress. Theme by WPBus.