一、基本知识(推荐:java视频教程)
在Java语言中,实现类的继承使用extends关键字
格式如下:
[public] class SubClass extends SuperClass{
//类体的定义
}
被继承的类称为父类或超类或基类,而继承得到的类称为子类或派生类。
子类继承父类的状态(属性)和行为(方法),同时也可以有自己的特征。
二、关于继承的注意事项
子类继承父类中非private的成员变量和成员方法,同时,注意构造方法不能被子类继承。
定义类时若缺省extends关键字,则所定义的类为java.lang.Object类的直接子类。
在Java语言中,一切类都是Object类的直接或间接子类。
Java仅支持单重继承,即一个类至多只有一个直接父类。在Java中通过接口来实现多重继承。
父类中定义的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));
}
}
运行结果:
更多java知识请关注java基础教程栏目。