目录
一、对象类型转换
1.1 情况
1.2 语法
1.3 代码
1.4 结论
二、static关键字
2.1 作用
2.2 代码
三、final关键字
3.1 作用
3.2 代码
四、instanceof关键字
4.1 作用
4.2 代码
(原创文章,转载请注明出处)
博主是计算机专业大学生,不定期更新原创优质文章,感兴趣的小伙伴可以关注博主主页支持一下,您的每一个点赞、收藏和关注都是对博主最大的支持!
一、对象类型转换
1.1 情况
Java中对象类型转换有两种:
- 向上转型:子类对象→父类对象(小范围→大范围,属于自动转换)
- 向下转型:父类对象→子类对象(大范围→小范围,属于强制转换)
1.2 语法
(1)向上转型
父类名 父类实例对象 = new 子类名()
// 或者分开写
子类名 子类实例对象 = new 子类名()
父类名 父类实例对象 = 子类实例对象
(2)向下转型
子类名 子类实例对象 = (子类名) 父类实例对象
1.3 代码
①父类
public class Father {
public String show() {
return "父类方法";
}
}
②子类
public class Child extends Father {
@Override
public String show() {
return "子类方法";
}
}
③测试类
public class SwitchTest {
public static void main(String[] args) {
// 向上转型:子类对象→父类对象
Father father = new Child();
System.out.println(father.show()); // 输出:子类方法
// 向下转型:父类对象→子类对象
Child child = (Child) father;
System.out.println(child.show()); // 输出:子类方法
}
}
1.4 结论
- 对象发生向上转型后,所调用的方法一定为被子类重写过的方法
- 父类的实例转换为子类的实例,子类实例对象调用的方法已重写
- 向下转型时不能直接将父类实例强制转换为子类实例,否则报错
以下格式为错误格式
子类名 子类实例对象 = (子类名) new 父类名( )
二、static关键字
2.1 作用
在Java中,static关键字用于修饰类的成员,包括变量和方法。它具有以下作用:
- 对于静态变量,static关键字使得该变量在类的所有对象中共享,即每个对象对于同一个静态变量的修改都会影响其他对象对该变量的访问。静态变量可以通过类名直接访问。
- 对于静态方法,static关键字使得该方法不依赖于类的实例,可以直接通过类名调用。静态方法无法访问非静态成员,因为非静态成员依赖于类的实例。
静态代码块:static{ }包裹的代码块称为静态代码块,静态代码块在类加载的时候会自动执行一次,并且在类的生命周期中只执行一次,通常用于初始化静态资源。
2.2 代码
① 例子类
public class Example {
static String name = "我是静态变量";
static String show() {
return "我是静态方法";
}
static {
System.out.println("我是静态代码块");
}
}
② 测试类
public class ExampleTest {
public static void main(String[] args) {
System.out.println(Example.name);
System.out.println(Example.show());
// 输出:
// 我是静态代码块
// 我是静态变量
// 我是静态方法
}
}
三、final关键字
3.1 作用
在Java中,final关键字用于修饰变量、方法和类。它具有以下作用:
- 对于变量,final关键字使得该变量的值只能被赋值一次,即它是一个常量,不能再被修改。
- 对于方法,final关键字使得该方法不能被子类重写或覆盖。
- 对于类,final关键字使得该类不能被继承。
3.2 代码
① 修饰变量
// 例子类
public class Example {
public final String finalVariate = "我是final修饰的变量";
}
// 测试类
public class ExampleTest {
public static void main(String[] args) {
Example example = new Example();
example.finalVariate = "修改final修饰的变量"; // 出现编译错误
}
}
② 修饰方法
// 父类
public class Father {
public final String finalMethod() {
return "我是final修饰的方法";
}
}
// 子类
public class Child extends Father {
public String finalMethod() { // 出现编译错误
return "继承父类方法";
}
}
③ 修饰类
// 父类
public final class Father { }
// 子类
public class Child extends Father { } // 出现编译错误
四、instanceof关键字
4.1 作用
在Java中,instanceof关键字用于判断一个对象是否是指定类或其子类的实例。它返回一个布尔值,如果对象是指定类或其子类的实例,返回true;否则,返回false。
4.2 代码
// 父类
public class Father { }
// 子类
public class Child extends Father { }
// 测试类
public class InstanceofTest {
public static void main(String[] args) {
Father father = new Father();
Child child = new Child();
System.out.println(father instanceof Father); // 输出:true
System.out.println(child instanceof Father); // 输出:true
System.out.println(father instanceof Child); // 输出:false
System.out.println(child instanceof Child); // 输出:rue
}
}
若有不妥之处,恳请读者批评指正