继承、接口、static、abstract

继承:
1.用extends来完成继承
2.子类可以继承父类全部的数据域但是只有部分的数据域对子类可见
3.在java中支持单继承
4.单继承和多继承的比较
(1)多继承比单继承能够更好的提高代码的复用性
(2)单继承比多继承能够更好的减少方法调用的歧义
优点:
(1)提高代码的复用性
(2)避免方法的调用产生混乱
接口:

  • 用implements关键字来完成类和接口之间的实现关系
  • 在java中支持的是类和接口之间的多实现
  • 在java中支持接口和接口之间的多继承
  • 接口不能创建对象
  • 接口也没有构造方法
  • 接口不是类
  • 在jdk1.8之前只能定义抽象方法,从jdk1.8开始,接口允许定义实体方法
  • 在接口定义的抽象方法默认是用public abstract修饰
  • 在接口中可以定义属性,但是默认使用public static final修饰
    static:
    静态变量:
  • 在类加载的时候加载到方法区
  • 在方法区2中赋予了默认值
  • 静态变量是先于对象出现,所以习惯上使用类名来调用
  • 本类的所有对象储存的是这个静态变量在方法区中的地址,所以静态变量是被所以对象共享
  • 静态变量只能定义在类中不能定义到任何代码块中
    静态方法:
  • 在类加载的时候加载到方法区
  • 在方法区中只储存不执行
  • 在方法被调用的时候到栈内存中执行
  • 静态方法先于对象出现
  • 静态方法中不能直接使用本类中的非静态
  • 静态方法可以重载
  • 静态方法能被继承,但是不能被重写
    <font color="green“> 静态代码块
    用static{}包起来的代码
    在类加载(第一次使用)的时候执行一次
    执行顺序
    (1)父类静态
    (2)子类静态
    (3)父类非静态
    (4)父类构造方法
    (5)子类非静态方法
    (6)子类构造方法

abstract:
抽象类
1.必须被继承
2.抽象类不能用final修饰
3.抽象类的构造方法私有,只不过这个时候需要将其内部类形式来完成继承
4.不能被实例化,但是有构造方法
5.子类在继承抽象类之后必须重写其中的所有抽象方法,除非子类也是抽象类
抽象方法
1.必须被继承重写
2.可以重载
3.不能用static/final/private修饰
4.如果抽象方法是默认权限,要求子类必须和抽象类同包

原文地址:https://www.cnblogs.com/Libbo/p/10268852.html