java中,多个类中都具有相同的功能的方法和成员变量,可以将这些相同的方法和成员变量抽取起来,放到一个类中,其他的类继承这个类。这个被继承的类就是父类,继承了父类的类就是子类。子类用关键字extends关联。如:

//这是一个父类
public class Father{
//定义一个成员变量:姓名
public String name;
//定义一个方法
public void eat(){
;;
}
}
//定义一个子类
public class Son extends Father{
}
//定义一个测试类
public class Test{
public static void main(String[] args){
//创建一个子类对象
Son s = new Son();
s.name = "张三";
s.eat();
}
}

复制代码

继承关系确定之后,子类拥有父类除private修饰符修饰的属性和方法。

在创建子类对象的时候,首先加载父类,并初始化父类中的成员变量和方法,再加载子类。继承是由extends确定两个类之间的关系,创建对象时,由super关键字来关联。在子类构造方法中第一行,默认有一个super();方法,来调用父类的无参构造方法,让父类先加载。所以在继承中,应该保持有一个无参构造方法,确保让父类可以正常加载。

java中,继承有单继承和多层继承的特点,也就是一个子类只能有一个父类,但是可以多个子类继承同一个父类。如果一个类(C类)需要使用两个不同类(A类和B类)中的成员,可以让这两个类构成继承关系。如:B extends A,然后在让 这C类继承B类,形成多层继承。

在Java中,子类和父类是一种相对概念,也就是说一个类是某个类父类的同时,也可以是另一个类的子类。例如上面的这种情况中,B类是A类的子类,同时又是C类的父类

继承中成员变量的特点

A:子类只能获取父类非私有成员 子父类中成员变量的名字不一样直接获取父类的成员变量 子父类中成员变量名字是一样的获取的是子类的成员变量

B:就近原则:谁离我近我 就用谁 如果有局部变量就使用局部变量 如果没有局部变量,有子类的成员变量就使用子类的成员变量 如果没有局部变量和子类的成员变量,有父类的成员变量就使用父类的成员变量

C: super:可以获取父类的成员变量和成员方法,用法和this是相似。this获取当前类的对象和方法。也就是谁调用this指的就是谁。