Java面向对象编程之InstanceOf关键词和多态

Java面向对象编程之InstanceOf关键词和多态

讲解 InstanceOf关键词使用,什么是多态

  • InstanceOf 关键词
    • 是Java的⼀个⼆元操作符(运算符),也是Java的保留关键字
    • 作用
      • 判断⼀个类是否实现了某个接⼝,或者判断⼀个实例对象是否属于⼀个类
      • 语法
//如果该object 是该class的⼀个实例,那么返回true。如果该object 不是该class的
⼀个实例,或者object是null,则返回false
boolean result = object instanceof class
参数:
  result :boolean类型。
  object :必选项。任意对象表达式。
  class:必选项。任意已定义的对象类。
public interface Perion {
    
    
}

public class Student {
    
    
}

public class InstanceOfTest {
    
    
    public static void main(String[] args) {
    
    
        Student student = new Student();
        boolean result1 = student instanceof Perion;
        System.out.println(result1);
        boolean result2 = student instanceof Student;
        System.out.println(result2);
    }
}

在这里插入图片描述

public interface Perion {
    
    
}

public class Student  implements Perion{
    
    
}

public class InstanceOfTest {
    
    
    public static void main(String[] args) {
    
    
        Student student = new Student();
        boolean result1 = student instanceof Perion;
        System.out.println(result1);
        boolean result2 = student instanceof Student;
        System.out.println(result2);
    }
}

在这里插入图片描述
对象类型强制转换前的判断

Person p1 = new Student();
//判断对象p是否为Student类的实例
if(1p instanceof Student)
{
    
    
 //向下转型
 Student s = (Student)p1;
}
  • ⽅法重写和重载

    • ⽅法重写 overriede
    • ⼦类对⽗类的允许访问的⽅法的实现过程进⾏重新编写,
    • 注意点
      • 返回值和形参都不能改变
      • ⽗类的成员⽅法只能被它的⼦类重写
      • finalstatic的⽅法不能被重写
      • 构造⽅法不能被重写
      • 访问权限不能⽐⽗类中被重写的⽅法的访问权限更低
    • ⽅法重载 overload
      • ⼀个类⾥⾯,⽅法名字相同但参数不同,返回类型可以相同也可以不同
      • ⽐如构造函数重载
  • 注意核⼼区分

  • override是在不同类之间的⾏为,overload是在同⼀个类中的⾏为

  • 总结:Java多态

    • 同⼀个⾏为具有多个不同表现形式或形态的能⼒
    • 常⻅的⽅式
      • 继承⽅法重写
      • 同类⽅法重载
      • 抽象⽅法
      • 接⼝

猜你喜欢

转载自blog.csdn.net/ruan_luqingnian/article/details/113343107