java创建一个名为employee的父类_实验四 Java类继承

§4 Java类继承实验

§4.1实验目的、内容及性质

1.熟悉Java类的继承机制;

2.掌握Java类中成员变量和方法的访问控制; 3.熟悉方法或构造方法多态性; 实验性质:验证、必做 实验学时:2学时 §4.2问题及思考

1、为什么需要继承? 子类从父类继承了什么成员?

2.、如子类实例化,继承后的构造函数如何调用?为什么这样? 3、Java类继承本质? §4.3实验指导

1、继承 1)、继承语法

class 子类名 extends 父类{ .... }

注意:一般称子类或派生类,父类也称为基类或超类。子类从父类继承了public以及protected成员(属性和函数),父类成员被继承到子类访问属性不改变. 在Java中,任何一个类都是Object类的子类

2)、继承下构造函数

当子类实例化,首先调用父类构造函数,其次调用子类本身构造函数 public Person(int z){ this.z=z; }

子类构造函数通过super()传实际参数给父类构造函数 public Student(int z){

super(z);//super()放在子类构造函数第一句可执行语句 .... }

3)、函数重载:在一个类中,函数名称相同,但是形式参数的个数或形参类型不同,这样一组构成函数重载.

public class Shape{

public double area(double r){

return Math.PI*r*r; }

public double area(double w,double h){ return w*h; }

public double area(double a,double b,double c){ double s=(a+b+c)/2;

return Math.Sqrt(s*(s-a)*(s-b)*(s-c)); } }

4)、覆盖问题override 子类重写了一个从父类继承过来的函数与属性。重写函数访问属性不低于继承函数 注意:

public void show(){ super.show();//调用父类中的同名函数 … }

5)、以下是示例,请仔细研究 import java.util.*; class Employee{ private String name; private double salary; public Employee(){ } public Employee(String n, double s){ name = n; salary = s; } public String getName(){ return name; } public double getSalary() { return salary; } public void raiseSalary(double byPercent) { double raise = salary * byPercent / 100; salary += raise; } } class Manager extends Employee{ private double bonus; public Manager(){ super(); this.bonus = bonus; } public Manager(String n, double s){ super(n, s); this.bonus = 0; } public double getSalary(){ double baseSalary = super.getSalary(); return baseSalary + bonus; } public void setBonus(double b){ bonus = b; } } public class ManagerTest{ public static void main(String[] args){ // 创建一个新的经理并设置他的奖金 Manager boss = new Manager(\陈鹏\ boss.setBonus(5000); Employee[] staff = new Employee[3]; // 建立员工数组和经理一起填充 staff[0] = boss; staff[1] = new Employee(\何恒\ staff[2] = new Employee(\童同\ // print out information about all Employee objects for (int i = 0; i < staff.length; i++){ Employee e = staff[i]; System.out.println(\ } } } §4.4实践编程

1、理解、回答并整理以下问题(非常重要)

1)、为什么需要继承? 子类从父类继承了什么成员? 有效地实现代码的复用性。public、protected成员。

2)、如子类实例化,父类是否需要实例化?如果需要实例化,则子类实例化时,父类以及子类实例化

顺序如何?

需要,先父类再子类。

3)继承后的子类构造函数如何定义以及传参数给父类的构造函数?父类与子类构造函数调用顺序如何?为什么这样?

通过super关键词。先父类再子类。子类是继承父类的。

4)、Java类继承本质?子类从父类继承成员函数、成员变量是否会另外创建副本? 子类实例化,系统自动创建一个父类实例化;不会。 2、实现一个名为Person的类和它的子类Employee 具体要求如下:

(1)Person类中的属性有:姓名name(String类型),地址address(String类型),电话号码telphone(String类型);

(2)Employee类中的属性有:办公室office(String类型),工资wage(double类型) (3)编写这两个类,及相应的测试代码。各个属性赋值在构造函数中完成。 package Ex4_1;

public class Person { private String pname; private String paddress; private String ptel;

public Person(String pname,String paddress,String ptel){ this.pname=pname;

this.paddress=paddress; this.ptel=ptel; }

public Person(){ }

public String getPname(){ return pname; }

public void setPname(String pname){ this.pname = pname; }

public String getPaddress(){ return paddress; }

public void setPaddress(String paddress){ this.paddress = paddress; }

public String getPtel(){ return ptel;

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在实现这个题目的时候,我们可以先定义一个名为Person的父类,其中包含了一个name属性和一个age属性,然后再定义两个子类,分别是Student和Employee。在这个程序中,我们还可以定义两个额外的子类,分别是教师Teacher和经理Manager。 Person是我们整个程序的父类,因此它需要封装name和age两个属性,并且提供getter和setter方法,用来获取和设置属性值。在这个中还可以添加一个play()方法,用来展示一个人的娱乐活动。 Student是一个Person的子类,这个可以拥有父类中的所有属性和方法,并且还可以添加自己独特的属性和方法。在这个中,我们可以定义一个schoolName属性和一个study()方法,用来展示学生的学习生活。 Employee是另外一个Person的子类,这个也可以拥有父类中的所有属性和方法,并且还可以添加自己独特的属性和方法。在这个中,我们可以定义一个companyName属性和一个work()方法,用来展示员工的工作生活。 Teacher和Manager则是另外两个子类,分别继承Employee。在Teacher中,我们可以定义一个teach()方法,用来展示教师的教学活动。在Manager中,我们可以定义一个manage()方法,用来展示经理的管理活动。 总之,这个程序中包含了5个,分别是Person、Student、Employee、Teacher和Manager。通过这些继承关系,我们可以清晰地展示出一个人在不同角色下的不同生活活动。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值