1、定义:继承允许创建分等级层次的类,就是子类继承父类的特征行为,使得子类对象具有父类实例的方法,
     使得子类具有父类相同的行为。
2、继承的特性:
  a、子类拥有父类非priavte的属性、方法;

  b、子类可以拥有自己的属性和方法、即子类可以对父类进行扩展;

  c、子类可以用自己的方式实现父类的方法;

  d、java的继承是单继承,但是可以多重继承;单继承:一个子类只可以继承一个父类;多重继承:A类继承
    B类,B类继承C类,即C类是B类的父类,B类是A类的父类;

  e、继承提高了类之间的耦合性(继承的缺点,提高了代码间的联系)

3、extends关键字:类的继承是单一继承,一个子类只能拥有一个父类,extends只能继承一个类;

 public class A { 
     public A() { 
         System.out.println("hello world");
     } 
 } 
 // B子类继承A父类(extends只能继承一个类)
 public class B extends  A{
 }

4、implements关键字:implements使类可以继承多个接口,多个接口用逗号分隔;

 public interface A {
     public void sayA();
 } 
 public interface B {
     public void sayB();
 }
 // C子类继承A、B多个接口(implements使类可以继承多个接口,多个接口用逗号分隔)
 public class C implements A,B {
 }

5、super关键字:用来引用当前对象的父类,实现对父类成员的访问;

6、this关键字:当前对象的引用;

7、final关键字:声明类不能被继承,即最终类,修饰方法不能被子类重写;

  a、语法: final class 类名 { 方法、属性 }    
       访问修饰符(public、private、default、protected) final 返回值类型 方法名(参数){ 方法体 }

  b、实例变量也可以被定义为 final,被定义为 final 的变量不能被修改;被声明为 final 类的方法自动地声明
    为final,但是实例变量并不是 final;

  c、访问修饰符

    public——对所有类可见,被声明为 public 的类、方法、构造方法和接口能够被任何其他类访问;

    private——在同一类中可见不能修饰类(外部类),被声明为 private 的方法、变量和构造方法只能被
      所属类访问;

    default——在同一包内可见;

    protected——对同一包内的类和所有子类可见不能修饰类(外部类)
图片描述

  d、非访问修饰符

    static——用来修饰类方法和类变量;

    final——用来修饰类、方法和变量,final 修饰的类不能够被继承,修饰的方法不能被继承类重新定义,
      修饰的变量为常量,是不可修改的;

    abstract——用来创建抽象类和抽象方法;

    synchronized、volatile——主要用于线程的编程,synchronized 关键字声明的方法同一时间只能被一
      个线程访问;

8、构造器:子类不能继承父类的构造器(构造方法、构造函数),如果父类的构造器带有参数,子类的构造器
      中必须显示的通过super关键字调用父类的构造器(带参数);如果父类的构造器不带有参数,不需
      要子类显示调用,系统会自动调用;