package com;
import com.oop.Demo06.Person;
import com.oop.Demo06.Student;
import com.oop.Demo06.Teacher;
public class Application {
public static void main(String[] args) {
//类型之间的转换:父 子
Person p = new Student();
((Student)p).go();
//子类转换为父类,可能丢失自己的本来的一些方法
Student student = new Student();
student.go();
Person person = student;
}
}
/*
1.父类引用指向子类的对象
2.把子类转换为父类,向上转型
3.把父类转换为子类,向下转型 强制转换
4.方便方法的调用,减少重复的代码 简洁
抽象:封装 继承 多态
*/
/*
//System.out.println(X instanceof Y); 能不能编译通过,需存在父子关系
Object s = new Student();
System.out.println(s instanceof Student);//true
System.out.println(s instanceof Person); //true
System.out.println(s instanceof Object); //true
System.out.println(s instanceof Teacher); //false
System.out.println(s instanceof String); //false
System.out.println("+++++++++++++++++++++++++++++++++++++++");
Person p = new Student();
System.out.println(p instanceof Student);//true
System.out.println(p instanceof Person);//true
System.out.println(p instanceof Object);//true
System.out.println(p instanceof Teacher);//false
//System.out.println(p instanceof String);
System.out.println("+++++++++++++++++++++++++++++++++++++++");
Student student = new Student();
System.out.println(student instanceof Student);//true
System.out.println(student instanceof Person);//true
System.out.println(student instanceof Object);//true
//System.out.println(student instanceof Teacher);
//System.out.println(student instanceof String);
*/