1.字符串
concat 字符串拼接操作
charAt 获取其中元素
indexOf 获取某元素索引
== 判断地址位是否相等
equals 判断内容是否相等
substring(a,b) 从某处索引开始截取,左闭右开
\\. 以.为分隔符分割需要加两个斜杠,正则
2.static关键字
static关键字, 修饰属性,使一个属性的赋值供多个对象使用。赋值在实例化处
方法中加 static 则变为静态方法
静态方法当中不能访问非静态变量,非静态方法则可以
因为加载时先有静态内容后有非静态内容
static {} 静态代码块只执行一次,类似于Python的 __new__()方法
3.继承
子类继承父类 类中使用 extends 关键字
public class zi extends fu {}
super.变量或属性 访问子父类重名中的父类变量
其余就近原则
覆盖的方法上一行加 @override 可以检测语法上是否覆盖
覆盖需要方法名称和参数列表都相同,否则是重载
子类方法返回值范围需要小于等于父类的范围,权限则相反
不支持多继承,儿子只能有一个爸爸,爸爸可以有很多儿女
4.权限修饰符
public protected default private
abstract 抽象类,抽象方法必须是在抽象类内;但抽象类不一定有抽象方法
抽象方法不能直接实例化,需要在子类中实例化
5.接口定义
接口是一种引用类型
接口可以定义抽象方法
interface Myinterface {
void Abstract_method();
}
实现类继承接口
public class A implements Myinterface {}
子类需要重写父类的所有抽象方法,否则子类也必须是抽象类。都不满足则报错
default关键字修饰抽象方法
public default void new {} 避免接口升级报错,设置后抽象基类添加新的抽象方法,而子类并没有重写,不会报错且可以直接调用
接口中 static 修饰的静态方法,使用接口.方法名调用
一个类只能有一个父类,但是可以继承多个接口
多继承中父母默认方法冲突 (方法名相同) 需要覆盖重写
继承接口同时也可以继承父类,优先执行父类方法
接口继承接口
public interface a extends Myinterface, Myinterface1
此时父母接口默认方法名冲突,需要覆盖且加关键字 default
6.多态
左父右子 子类有方法则用子类的,否则用父类的
成员变量不能覆盖重写
fu obj = new zi();
obj.num 找等号左边的类的变量值
方法右,变量左 查找规则,会朝上找但不会朝下找
若非要向下找, 采用还原法, 类似于强制转换
zi zi_obj = (zi) obj;