Java日记📒
Java日记📒
六鱼居士Java 基础知识
super 关键字
在 Java 中,super 是一个关键字,用于访问父类的属性和方法。使用 super 关键字可以在子类中访问和调用父类中的方法、构造函数和变量。
访问父类的属性和方法:使用 super 关键字可以访问父类的属性和方法。
1 | class Person { |
调用父类的构造函数:使用 super 关键字还可以调用父类的构造函数。当子类中没有显式调用父类的构造函数时,Java 编译器会自动调用父类的无参构造函数。如果父类没有无参构造函数,则要使用 super 关键字调用父类的带参数构造函数。
1 | public class Animal { |
多态
针对某个类型的方法调用,其真正执行的方法取决于运行时期实际类型的方法。
抽象类
如果一个 class 定义了方法,但没有具体执行代码,这个方法就是抽象方法,抽象方法用** abstract 修饰。因为无法执行抽象方法,因此这个类也必须申明为抽象类(abstract class**)。无法实例化一个抽象类。
1 | abstract class Person { |
接口
如果一个抽象类没有字段,所有方法全部都是抽象方法,就可以把该抽象类改写为接口:interface。
1 | interface Person { |
interface,就是比抽象类还要抽象的纯抽象接口,因为它连字段都不能有。因为接口定义的所有方法默认都是public abstract的,所以这两个修饰符不需要写出来(写不写效果都一样)。
当一个具体的 class 去实现一个 **interface **时,需要使用 implements 关键字。
1 | class Student implements Person { |
在 Java 中,一个类只能继承自另一个类,不能从多个类继承。但是,一个类可以实现多个 interface。
一个 interface 可以继承自另一个 interface。interface 继承自 interface 使用 extends ,它相当于扩展了接口的方法。
1 | interface Hello { |
在接口中,可以定义** default 方法。default 方法的目的是,当我们需要给接口新增一个方法时,会涉及到修改全部子类。如果新增的是 default **方法,那么子类就不必全部修改,只需要在需要覆写的地方去覆写新增方法。
Java 核心类
字符串 String
String 是一个引用类型,它本身也是一个 class。但是,Java 编译器对String 有特殊处理,即可以直接用”…”来表示一个字符串。
想比较字符串的内容是否相同。必须使用 equals() 方法而不能用 == 。要忽略大小写比较,使用equalsIgnoreCase()方法。
toLowerCase()将字符串转变为小写。
1 | //判断字符串是否相等 |
要把任意基本类型或引用类型转换为字符串,可以使用静态方法valueOf():
1 | String.valueOf(123); // "123" |
把字符串转换为int类型:
1 | int n1 = Integer.parseInt("123"); // 123 |
把字符串转换为boolean类型:
1 | boolean b1 = Boolean.parseBoolean("true"); // true |
Java编译器对String做了特殊处理,使得我们可以直接用+拼接字符串。
包装类型
- 基本类型:byte,short,int,long,boolean,float,double,char
- 引用类型:所有class和interface类型
- 引用类型可以赋值为null,表示空,但基本类型不能赋值为null
Java核心库为每种基本类型都提供了对应的包装类型,我们可以直接使用,并不需要自己去定义:
基本类型 | 对应的引用类型 |
---|---|
boolean | java.lang.Boolean |
byte | java.lang.Byte |
short | java.lang.Short |
int | java.lang.Integer |
long | java.lang.Long |
float | java.lang.Float |
double | java.lang.Double |
char | java.lang.Character |