再拾Java基础(二)

一、final关键字

final可以修饰类、方法和变量,被修饰的这些类、方法和变量都有 不可更改 的意思。

final修饰的类:该类不能被继承

final修饰的方法:该方法不能被重写Override

final修饰的变量:该变量不能被重新赋值

  • final修饰成员变量:声明时需要同时初始化,可以 直接赋值 或者通过 静态代码块 赋值。
  • final修饰局部变量:声明时可以不初始化,在使用前需要一次赋值,并且只能赋一次值。也可以通过构造代码块初始化。

二、接口

接口是一种引用数据类型(还有数组和类),继承它的实现类需要重写其中的所有抽象方法。

接口中只能存在以下5种内容:

  • 自定义常量:默认是static final的;

  • 抽象方法:给实现类重写,默认是abstract

  • 默认方法(java8):实现类重写抽象方法时,方法体都是一样的,那么可以使用默认方法简化

    public default void show() {
        System.out.println("hello");
    }
    
  • 静态方法(java8):作为工具方法使用,使用类名.静态方法调用

  • 私有方法(java9):只能在接口内部使用

接口之间支持多继承,但不能相互实现。

三、多态

多态发生在继承或实现的关系下,而且子类需要重写父类的方法。在格式上的体现为:父类引用指向子类。

多态产生的效果之和子类与父类之间的方法重写有关,和其他成员无关(成员变量)。

四、内部类

内部类分为成员内部类和局部内部类。

成员内部类:

定义在类中方法外。内部类可以访问外部类的所有成员。当内部类有成员变量和外部类的成员变量重名时,调用内部成员变量的格式:this.变量,调用外部类的成员变量的格式:外部类.this.变量

局部内部类:

定义在成员方法中,只能在该成员方法中进行对象的创建和使用,局部内部类可以访问外部类和所属方法的的所有内容。但是当这三个地方有着一个重名的变量的时候,局部内部类不能访问和修改所属方法中的局部变量和类中的成员变量,根本原因在于声明周期的不同。

匿名内部类是局部内部类的一种,这个类只使用一次。可以使用Lambda表达式简化写法。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 面向对象笔记 一、 对象在内存中的存放方法以及被调用过程 class文件首先被加载到方法区中的class文件内容区...
    VictorBXv阅读 489评论 0 2
  • 整理来自互联网 1,JDK:Java Development Kit,java的开发和运行环境,java的开发工具...
    Ncompass阅读 1,559评论 0 6
  • 一:java概述: 1,JDK:Java Development Kit,java的开发和运行环境,java的开发...
    慕容小伟阅读 1,851评论 0 10
  • 一:java概述:1,JDK:Java Development Kit,java的开发和运行环境,java的开发工...
    ZaneInTheSun阅读 2,715评论 0 11
  • Win7下如何打开DOS控制台? a:开始--所有程序--附件--命令提示符 b:开始--搜索程序和文件--cmd...
    逍遥叹6阅读 1,634评论 4 12