继承就是以原有的某个类为基础生成新的类,增加一些新的成员变量和方法,使新的类功能更趋完善的一种高效变成机制。新生成的类被称为子类(或派生类),原有的这个类被称为子类的父类(基类,也称超类)。
继承的实现:
定义一个子类,即在定义一个类的时候加上extends关键字,并在之后加上其父类名,格式如下:
[类的修饰符] class <子类名> extends <父类名>
{
成员变量;
成员方法;
}
实例:
class Person {
private String name;
private int age;
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return this.name;
}
public int getAge() {
return this.age;
}
}
class Student extends Person {
}
public class Demo04 {
public static void main(String[] args) {
Student stu = new Student();
stu.setName("张三");
stu.setAge(23);
System.out.println("学生姓名:" + stu.getName() + ",年龄:" + stu.getAge() + "岁。");
}
}
运行结果:
学生姓名:张三,年龄:23岁。
实例:
class A{
public A() {
System.out.println("A类的构造方法");
}
}
class B extends A{
public B() {
System.out.println("B类的构造方法");
}
}
public class Demo04 {
public static void main(String[] args) {
new B();
}
}
运行结果:
A类的构造方法
B类的构造方法
成员变量的隐藏和方法的重写
在编写子类时,子类中声明的成员变量名字和从父类继承过来的成员变量名字相同时,子类就会使用自己声明的成员变量,隐藏从父类继承过来的成员变量;
子类隐藏继承的成员变量的特点如下:
1、子类对象和子类自己定义的方法,在操作与父类同名的成员变量时,使用的是子类声明的成员变量,而不是父类的;
实例:
//创建父类
public class variableHidden {
//父类成员变量
double number = 456.456 ;
}
//创建子类
public class variableHidden_Test extends variableHidden{
//1、子类对象和子类自己定义的方法,在操作与父类同名的成员变量时,使用的是子类声明的成员变量,而不是父类的;
//对父类的成员变量进行隐藏
double number = 11.11;
//方法中操作 number 成员变量,此时使用的number是子类自己声明的number
void Operation(int x){
number += x;
System.out.println("成员变量number的值:"+number);
}