继承是面向对象的三大特征之一,继承让我们更加容易实现类的拓展,实现代码的重用,不再用重新发明轮子。
继承的作用:
- 代码复用,更容易实现类的拓展
- 方便建模
继承的实现
从字面意思看,extends就是拓展的意思,
package com.it.test;
public class Test {
public static void main(String[] args) {
Student s = new Student("小明", 20, "Java");
s.rest();
s.study();
}
}
class Person {
String name;
int height;
public void rest() {
System.out.println("休息一下");
}
}
class Student extends Person {
String magor;
public Student(String name, int height, String magor) {
this.name = name;
this.height = height;
this.magor = magor;
}
public void study() {
System.out.println("学习一会");
}
}
instanceof
instanceof 是二元运算符,左边是对象,右面是类。当对象是右面类或者子类创建的对象时返回true,否则返回false.
public class Test {
public static void main(String[] args) {
Student s = new Student("小明", 20, "Java");
s.rest();
s.study();
System.out.println(s instanceof Student); // true
System.out.println(s instanceof Person); // true
}
}
继承的使用要点:
- 父类也称作 超类、基类。子类:派生类。
- Java中只有单继承、没有像C++那样多继承。多继承会引起混乱。
- Java中的类没有多继承,接口右多继承
- 子类继承父类,可以得到父类的全部属性和方法(除了父类的构造方法)。但不一定可以直接访问:比如父类的私有属性和方法。
- 如果定义一个类时,没有调用extends,则它的父类是java.lang.Object;