1. 代码块
  • 局部代码块:写在方法里面的代码块,局部代码块限定了变量的作用域和生命周期
  • 构造代码块:作用是用于对对象进行统一初始化,无论创建对象的时候调用哪个构造方法,构造代码块中的代码必定执行,而且会先于构造方法中的代码执行
  • 静态代码块:加static修饰的代码块,随着类的加载而加载,只会执行一次,一般用于初始化类的信息,会先于构造代码块执行。
  1. 继承
  • java中的所有类都继承于Object类,所以java中的所有类的对象都可以使用Object类的成员方法;
  • 子类继承于父类之后,就可以拥有父类非私有的成员变量和方法;
  • java中,一个类只允许有一个父类,不允许多重继承;

java支持多层继承:A继承于BB继承于C,于是,A继承于B,间接继承于C

  • 子类和父类拥有同名的成员变量,则创建子类对象实际上拥有两个不同的相同名字的成员变量信息,一个是属于父类的信息,一个数属于子类的信息。如果要获取子类自己的成员变量,则使用this.name;如果要获取父亲的成员变量,则使用super.name
  • 如果子类的构造方法中要调用父类中的构造方法,需要使用super关键字,如果使用super()则表示调用父类无参的构造方法;如果使用super(参数1,参数2),则表示调用父类对应参数的构造方法
  1. 重写@Override关键字
  • 重写父类的方法,重写是指父类中的方法和子类中的方法可以有不同的实现
  • 在继承关系或者实现接口的关系中才存在方法的重写
  • 父类中的私有方法不能重写
  1. 重写和重载的区别:
  • 重写是指子类重写父类的方法,方法一样,但是拥有不同的行为
  • 重载是指方法名相同方法中的参数不同
  1. final:最终的
  • 凡是以final修饰的变量不可以被修改
  • 凡是以final修饰的方法不可以被重写
  • 凡是以final修饰的类不可以被继承
  1. Super关键字
  • 作用:
    • 主要存在于子类方法中,用于只想子类对象中父类对象
    • 访问父类的属性
    • 访问父类的函数
    • 访问父类的构造函数
  • 使用
    • 子类隐式调用父类构造函数,子类的构造函数默认第一行会默认调用父类无参的构造函数,隐式语句:super();
    • 子类显示调用父类构造函数,在子类构造函数第一行通过super关键字调用父类任何构造函数。如果显式调用父类构造函数,编译器自动添加的调用父类无参数的构造就消失。构造函数间的调用只能放在第一行,只能调用一次。super()和this()不能同时存在构造函数第一行。

例如:


 Java基础知识03

  1. 面向对象:封装、继承、多态
  • 多态:事务存在多种表现形态
  • 多态的三个条件:
    • 要有子类继承父类
    • 要有方法的重写
    • 要有父类的引用指向子类对象
  • 多态注意事项
    • 多态情况下访问的非静态方法默认情况下是子类的方法
    • 多态情况下访问的同名的静态方法是父类的 方法
    • 多态情况下访问的成员变量(静态/非静态)是父类的信息
    • 多态情况下如果想要访问子类自己的成员变量/方法,则需要强转
  • 多态的应用场景:一般情况下用于方法的入参或者方法的返回值
  1. 抽象类
  • abstract修饰的类就是抽象类,加abstract修饰的方法就是抽象方法
  • 抽象类不可以直接创建对象,抽象类的用途是给子类使用的
  • 抽象类中可以有非抽象方法,但是有抽象方法的一定是抽象类
  • 抽象类的子类要么继续是抽象类,要么得重写抽象类所有的抽象方法

 

不能和abstract共存的关键字:privatefinalstatic

  1. 接口:interface
  • 接口是一组需求的描述
  • 接口的作用:
    • 为一个类新增功能
    • 定义一组约束或者规范
    • 为程序解耦
  • 接口的注意事项:
    • 一个类可以实现多个接口
    • 接口是可以继承另外一个接口的,接口是可以多继承的
    • 不能根据接口名创建对象,接口没有构造方法
    • 接口中的成员变量默认是pubilc static final
    • 接口中的方法默认是public abstract

相关文章: