zoukankan      html  css  js  c++  java
  • 继承、接口、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.如果抽象方法是默认权限,要求子类必须和抽象类同包

  • 相关阅读:
    批量改主机名报错:Address 192.168.43.117 maps to bogon, but this does not map back to the address
    ssh远程登录连接慢的解决方法
    expect脚本远程登录、远程执行命令和脚本传参简单用法
    将集群WEB节点静态数据迁移到共享存储器(LNMP环境)
    LAMP环境搭建之编译安装指南(php-5.3.27.tar.gz)
    手把手教你设置MongoDB密码
    手把手教你在Linux系统下安装MongoDB
    手把手教你在Linux系统下安装MySQL
    在Linux下使用rm -rf /*后会怎样?
    Failed to configure a DataSource 'url' attribute问题解决
  • 原文地址:https://www.cnblogs.com/Libbo/p/10268852.html
Copyright © 2011-2022 走看看