Java 类的继承
一、基本知识
1、在Java语言中,实现类的继承使用extends关键字
格式如下:
[public] class SubClass extends SuperClass{
//类体的定义
}
2、被继承的类称为父类或超类或基类,而继承得到的类称为子类或派生类。
3、子类继承父类的状态(属性)和行为(方法),同时也可以有自己的特征。
二、关于继承的注意事项
1、子类继承父类中非private的成员变量和成员方法,同时,注意构造方法不能被子类继承。
2、定义类时若缺省extends关键字,则所定义的类为java.lang.Object类的直接子类。
在Java语言中,一切类都是Object类的直接或间接子类。
3、Java仅支持单重继承,即一个类至多只有一个直接父类。在Java中通过接口来实现多重继承。
4、父类中定义的private成员变量和方法不能被子类继承,因此在子类中不能直接使用。我们可以在父类中定义公共的访问方法和修改方法,子类可以通过这些方法来实现访问和修改。
三、举例说明
Person类
package com.baidu.czy; public class Person { //属性 private String name; private int age; //方法 public String getName() { return name; } public int getAge() { return age; } public Person() { } public Person(String name, int age) { this.name = name; this.age = age; } public void sayHello(){ System.out.println("My name is " + name); } }
Employee类
package com.baidu.czy; public class Employee extends Person { //属性 private double salary; private String name; //方法 public Employee(){ } public Employee(String name, int age,double salary) { //调用父类的构造方法 super(name, age); this.salary = salary; } public double computeSalary(int hours,double rate){ double salary = hours * rate; return this.salary + salary; } @Override public void sayHello(){ //调用父类中被覆盖的方法 super.sayHello(); System.out.println("Hello,I am " + getName()); System.out.println("I am " + getAge()); System.out.println("My salary is " + salary); } }
EmployeeTest类
package com.baidu.czy.test; import com.baidu.czy.Employee; public class EmployeeTest { public static void main(String[] args) { Employee emp = new Employee("刘明",30,5000); System.out.println("姓名= " + emp.getName()); System.out.println("年龄= " + emp.getAge()); //调用从父类继承的方法 emp.sayHello(); //调用子类中定义的方法 System.out.println(emp.computeSalary(10,50.0)); } }
运行结果