继承与多态

  1. 在父子类的继承关系当中,如果成员变量重名,则创建子类对象时,访问有两种方式:

    • 直接通过子类对象访问成员变量:等号左边是谁,就优先用谁,没有则向上找
    • 间接通过成员方法访问成员变量:该方法属于谁,就优先用谁,没有则向上找
  2. 从Java 8 开始,接口里允许定义默认方法

    • 格式

        public default 返回值类型 方法名称(参数列表){
      方法体
      }
    • 备注:接口当中的默认方法,可以解决接口升级的问题

    从Java 9 开始,接口中允许定义私有方法

  3. 多态的代码中,成员变量和成员方法的访问规则

    • 成员变量:编译看左边,运行还看左边
    • 成员方法:编译看左边,运行看右边
  4. 多态

    体现多态性:父类引用指向子类对象

    好处:无论右边new的时候换成哪个子类对象,等号左边调用方法都不会变化

  5. 内部类

    • 成员内部类

      内用外,随意访问;外用内,需要内部类对象

      使用方式:

      1. 间接方式:在外部类的方式当中,使用内部类;然后调用外部类的方法

      2. 直接方式,公式:

        【外部类名称.内部类名称 对象名 = new 外部类名称().new 内部类名称();】

    • 局部内部类(包含匿名内部类)

      要访问所在方法的局部变量,那么这个局部变量必须是【有效final】的。

      从Java 8 开始,只要局部变量事实不变,那么final关键字可以省略

    • 权限修饰符规则:

      1. 外部类:public、(default)
      2. 成员内部类:public、protected、(default)、private
      3. 局部内部类:什么都不写

常用API

String

  1. String和int相互转换

    1. int--->String

      • num + "" 低效
      • String.valueOf(num)
      • Integer.toString(num)
    2. String--->int

      • Integer.parseInt(str)
      • Integer.valueOf(str).intValue()
  2. 双引号直接写的字符串在常量池当中,new出来的不在池中

  3. 常量.equals字符串时建议把常量放前面,避免因字符串为空导致的空指针异常

  4. 分割字符串的split()方法的参数是一个正则表达式,以"."分割是要写成" \\. "

  5. 输出一维数组:Arrays.toString(arr)

    输出二维数组:Arrays.deepToString(str)

  6. String 为什么是 final 的

    1. 实现字符串池:不可变才能实现字符串池,如果字符串是可变的,那么一个引用操作改变了对象的值,对其他引用会有影响

    2. 安全性:这些核心类的内部方法的实现并不是Java本身编写的,好多都是调用的操作系统本地的API,如果String可以被继承重写,就有可能被恶意的重写其中的方法,造成安全隐患;同时因为不可变,使得String是多线程安全的

    3. 效率:如果已经存在这个字符串常量便不会再创建,直接拿来用

JavaSE复习(一)继承多态与常用API的更多相关文章

  1. JavaSE复习日记 : 继承关系和super关键字以及继承关系中方法的覆写

    /* * 类的继承和super关键字 * * 软件开发的三大目的: * 可拓展性; * 可维护性; * 可重用性; * * 这里单说下可重用性这一项: * 为了代码复用,复用方式有: * 函数的调用复 ...

  2. JavaSE 复习_4 接口多态和内部类

    △abstract不可以修饰成员变量 △一个类可以没有抽象方法,可以定义为抽象类,这样的目的是不能让其他类建立本类对象,交给子类完成. △abstract和static(可以被类名调用方法,但是抽象方 ...

  3. JavaSE复习_3 继承

    △先默认初始化,在显示初始化,在构造函数初始化 △继承的弊端:代码的耦合性增加了. △子类不能继承父类的构造方法. △子类会拥有父类的私有成员变量,但是必须通过get,set方法访问. △super不 ...

  4. JavaSE环境Shiro的搭建及常用API

    通过shiroAPI来进行角色的管理 模拟用户是否登录: 模拟用户是否具有相应的权限:

  5. python oop常用术语 继承 多态 封装

    面向对象优点 1.通过封装明确了内外 2.通过继承+多态在语言层面支持了归一化设计 抽象/实现 抽象指对现实世界问题和实体的本质表现,行为和特征建模,建立一个相关的子集,可以用于 绘程序结构,从而实现 ...

  6. Java基础学习笔记十二 类、抽象类、接口作为方法参数和返回值以及常用API

    不同修饰符使用细节 常用来修饰类.方法.变量的修饰符 public 权限修饰符,公共访问, 类,方法,成员变量 protected 权限修饰符,受保护访问, 方法,成员变量 默认什么也不写 也是一种权 ...

  7. 【repost】Javascript操作DOM常用API总结

    Javascript操作DOM常用API总结 文本整理了javascript操作DOM的一些常用的api,根据其作用整理成为创建,修改,查询等多种类型的api,主要用于复习基础知识,加深对原生js的认 ...

  8. JavaSE学习笔记(8)---常用类

    JavaSE学习笔记(8)---常用类 1.Object类 java.lang.Object类是Java语言中的根类,即所有类的父类.它中描述的所有方法子类都可以使用.在对象实例化的时候,最终找的父类 ...

  9. 常用API【2】

    常用API 1.Math类 1.1 Math类概述 Math包含执行基本数字运算的方法 没有构造方法,如何使用类中的成员呢? 看类的成员是否是静态的,如果是,可以通过类名直接调用 1.2Math类的常 ...

随机推荐

  1. input的类型为number,限制输入的数字位数

    <input type="text"  maxlength="5" />   效果ok,当 <input type="number& ...

  2. 其它内置函数(zip等)

      python内置函数 截止到python版本3.6.2,python一共为我们提供了68个内置函数.它们就是python提供给你直接可以拿来使用的所有函数     Built-in Functio ...

  3. Map详解

    https://mp.weixin.qq.com/s/s4KLQyE5bY833kGzWl3vsg

  4. ES6初识-模块化

    export let A=123; export function test(){ console.log('test'); } export class Hello(){ test(){ conso ...

  5. 洛谷P3611 [USACO17JAN]Cow Dance Show奶牛舞蹈

    题目描述 After several months of rehearsal, the cows are just about ready to put on their annual dance p ...

  6. linux下安装xtrabackup

    下载需要的版本的xtrabackup软件包,链接如下: https://www.percona.com/downloads/XtraBackup/LATEST/ percona-xtrabackup- ...

  7. PHP中json_encode后,在json字符串中依然显示中文的解决方案

    <?php header("Content-Type:text/html;charset=utf-8;"); $arr = array ('Version_code'=> ...

  8. 交换机基础配置之跨交换机划分vlan

    我们以上面的拓扑图来进行实验 四台pc机都在同一网段 pc1和pc2在同一台交换机上 pc3和pc4在同一台交换机上 现在我们实验的目的就是将pc1和pc3划分到同一vlan pc2和pc4划分到同一 ...

  9. Sublime Text3的快捷键和插件

    今天重装了一下Sublime Text3,发现了一个不错的网站,关于Sublime Text3的插件安装介绍的很详细,还有右键增强菜单和浏览器打开快捷键的创建.奉上链接 http://www.cnbl ...

  10. python__系统 : 进程

    在类unix操作系统下,可以用 os.fork() 创建一个新的进程,windows系统不可以: import os ret = os.fork() print('ret=%d' % ret) : p ...