实验 类的继承编程练习

一、实验目的

1.掌握父类的定义方法

2.掌握子类的定义方法

3.掌握继承的使用方式

二、实验硬、软件环境

Windows计算机和Eclipse软件

三、实验内容及步骤

1. 现在个电子宠物系统,父类Pet,子类Dog和Penguin,要求子类继承父类,并重写父类方法,并打印宠物信息。

 

代码及运行结果如下:

父类:

package 实验六;

public class Pet {

  private String name;

  private int health;//健康值

  private int love;//亲密度

  public Pet() { }//无参的构造方法

  public Pet(String name,int health,int love) {

  this.name = name;

  this.health = health;

  this.love = love;}

public String getName() {

return name;}

public void setName(String name) {

this.name = name;}

public int getHealth() {

return health;}

public void setHealth(int health) {

this.health = health;}

public int getLove() {

return love;}

public void setLove(int love) {

this.love = love;}

void show() {

System.out.print("宠物的自我介绍:\n我的名字叫"+getName()+

",健康值是"+getHealth()+

",和主人的亲密度是"+getLove());}}

子类:

package 实验六;

public class Dog extends Pet {

    private String strain;//strain-品种

    public Dog() {}

 public String getStrain() {

return strain;}

 public void setStrain(String strain) {

this.strain = strain;}

 void show() {

super.show();

System.out.println(",我的品种是"+getStrain());}}

package 实验六;

public class Penguin extends Pet{//企鹅

      private String sex;

      public Penguin(){}

public String getSex() {

return sex;}

public void setSex(String sex) {

this.sex = sex;}

void show() {

super.show();

System.out.println(",我的性别是"+getSex());}}

测试类:

package 实验六;

public class 实验六 {

public static void main(String[] args) {

// TODO Auto-generated method stub

Dog dog = new Dog();

dog.setName("marry");

dog.setHealth(100);

dog.setLove(93);

dog.setStrain("金毛");

dog.show();

Penguin penguin = new Penguin();

penguin.setName("胖胖");

penguin.setHealth(98);

penguin.setLove(78);

penguin.setSex("公");

penguin.show();}}

2.假设教师工作证包括编号、姓名、性别、出生年月、职务和签发时间;学生证包括编号、姓名、性别、出生年月、系别、入校时间。请为教师工作证与学生工作证设计一个类结构,尽可能保证代码的复用率,并输出教师工作证和学生工作证信息。

代码如下:

父类:

package 实验六;

public class 证 {

private int bianhao;

  private String name;

  private String sex;

  private String brithday;

  public 证() {}

  public 证(String name,String sex, String brithday) {

  this.name = name;

  this.sex = sex;

  this.brithday = brithday;}

public int getBianhao() {

return bianhao;}

public void setBianhao(int bianhao) {

this.bianhao = bianhao;}

public String getName() {

return name;}

public void setName(String name) {

this.name = name;}

public String getSex() {

return sex;}

public void setSex(String sex) {

this.sex = sex;}

public String getBrithday() {

return brithday;}

public void setBrithday(String brithday) {

this.brithday = brithday;}

void show() {

System.out.print("\n编号: "+getBianhao()+" 姓名: "+getName()+" 性别"+getSex()+" 出生年月: "+getBrithday());}}

子类:

package 实验六;

public class 教师工作证 extends 证 {

  private String post;//职务

  private String timefiled;//签发时间

  public 教师工作证() { }

  public 教师工作证(String post,String timefiled) {

  this.post = post;

  this.timefiled = timefiled;}

public String getPost() {

return post;}

public void setPost(String post) {

this.post = post;}

public String getTimefiled() {

return timefiled;}

public void setTimefiled(String timefiled) {

this.timefiled = timefiled;}

void show() {

super.show();

System.out.println(" \n职务: "+getPost()+" 签发时间: "+getTimefiled());}}

package 实验六;

public class 学生证 extends 证 {

private String dept;

private String ruxiaoshijian;

public 学生证() { }

public String getDept() {

return dept;}

public void setDept(String dept) {

this.dept = dept;}

public String getRuxiaoshijian() {

return ruxiaoshijian;}

public void setRuxiaoshijian(String ruxiaoshijian) {

this.ruxiaoshijian = ruxiaoshijian;}

void show() {

super.show();

System.out.println("\n系别: "+getDept()+" 入学时间"+getRuxiaoshijian());}}

测试类:

package 实验六;

public class 实验七 {

public static void main(String[] args) {

// TODO Auto-generated method stub

教师工作证 teacher = new 教师工作证();

teacher.setBianhao(106);

teacher.setName("肖小");

teacher.setSex("男生");

teacher.setBrithday("1987年6月9日");

teacher.setPost("主任");

teacher.setTimefiled("2001年9月1日");

teacher.show();

学生证 student = new 学生证();

student.setBianhao(221);

student.setName("竹狄");

student.setSex("女生");

student.setBrithday("1987年6月9日");

student.setDept("计算机");

student.setRuxiaoshijian("2002年8月1日");

student.show();}}

3.定义一个人的类,属性有名字、年龄,写一个能输出各个属性值的方法showinfo()。定义一个学生类,属性有性别。学生类继承人类。

要求:

  • 父类的属性赋值用构造方法来实现(分别用有参数构造方法和无参数构造方法实现)。
  • 子类的属性也用构造方法来赋值。
  • 在子类中重写父类的showinfo()方法。
  • 声明学生类的对象,调用学生的显示信息的方法。

代码如下:

父类:

package 实验六;

public class 人 {

   private String name;

   private int age;

   public 人() { }//无参的构造方法

  public 人(String name,int age) {

  this.name = name;

  this.age = age;    }

public String getName() {

return name;}

public void setName(String name) {

this.name = name;}

public int getAge() {

return age;}

public void setAge(int age) {

this.age = age;}

void showinfo() {

System.out.println("学生姓名:"+getName()+"  年龄:"+getAge());}}

子类:

package 实验六;

public class 学生类 extends 人 {

String sex;

public 学生类() { }

public String getSex() {

return sex;}

public void setSex(String sex) {

this.sex = sex;}

void showinfo() {

super.showinfo();

System.out.print("  性别:"+getSex());}}

测试类:

package 实验六;

public class 实验六3 {

public static void main(String[] args) {

// TODO Auto-generated method stub

     学生类 student = new 学生类();

     student.setName("张之");

     student.setAge(16);

     student.setSex("女生");

     student.showinfo();}}

4.父类Employee的属性包括name、sex,带一个构造方法Employee(String n,char s)。子类Worker继承自Employee,属性包括类别char category、是否提供服装津贴boolean dressAllowance,有一个构造方法负责构造所有属性,还有一个自定义方法isDressAll(),这个方法负责通过判断dressAllowance的值输出决定是否提供服装津贴。

代码如下:

父类:

package 实验六;

public class Employee {

 String name;

 char sex;

public Employee(){}

 public Employee(String n,char s) {

  this.name = n;

  this.sex = s;} }

子类:

package 实验六;

public class Worker extends Employee{

 char category;

 boolean dressAllowance;

public Worker() {}

public Worker(String n,char s,char category,boolean dressAllowance) {

this.name = n;

this.sex = s;

this.category = category;

this.dressAllowance = dressAllowance;}

void isDressAll() {

if(dressAllowance) {

System.out.println("提供服装津贴");

}else {

System.out.println("不提供服装津贴");}}}

测试类:

package 实验六;

public class 实验六4 {

public static void main(String[] args) {

Worker worker = new Worker("李昀",'男','a',true);

worker.isDressAll();}}

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值