instanceof,抽象类和接口
Instanceof
instanceof:判断两个类之间是否有父子关系
Application.java
package OOP;
import OOP.Demo04.Person;
import OOP.Demo04.Student;
import OOP.Demo04.Teacher;
public class Application {
    public static void main(String[] args) {
        Object object = new Student();
        System.out.println(object instanceof Person);
        System.out.println(object instanceof Student);
        System.out.println(object instanceof Teacher);
        System.out.println(object instanceof Object);
        System.out.println(object instanceof String);
    }
}
要点
- 前提:父类引用指向子类的对象
 - 把子类转换为父类,向上转型,不用强转
 - 把父类转换为子类,向下转型,需要强转
 - 方便方法的调用,减少代码的重复使用,提高利用率
 
Abstract 抽象类
在类前面加一个修饰符abstract
抽象方法
public abstract void something();
只有方法名,没有方法体
抽象类的所有方法,都必须由继承了它的子类来实现;除非子类也是抽象类
抽象类的特点
不能new出来,只能靠子类去实现,是一种约束
抽象类里可以有普通方法,但是抽象方法不能在普通类里定义
接口
- 接口就是规范,定义的是一组规则
 - 关键词:interface
 - 接口中的所有定义其实都是抽象的,public abstract
 - 接口都需要实现类
 - 类可以实现接口,通过关键字implements;如: 类名 implements 接口
 - 实现了接口的类,必须要重写接口中所有的方法
 - implements 可以实现多继承
 - 接口中定义常量都是 public static final
 - 接口不能被实例化,因为它没有构造方法
 
UserService.java
package OOP.Demo05;
public interface UserService {
    //接口中所有的方法都是抽象的
    void add();
    void delete();
    void update();
    void query();
}
UserServiceImpl.java
package OOP.Demo05;
public class UserServiceImpl implements UserService {
    @Override
    public void add() {
    }
    @Override
    public void delete() {
    }
    @Override
    public void update() {
    }
    @Override
    public void query() {
    }
}
                    
                
                
            
        
浙公网安备 33010602011771号