instanceof和类型转换
instanceof:判断一个对象是什么类型
public class Person {public void run(){System.out.println("ss");}
}
public class Student extends Person {public void go(){System.out.println("gg");}}
public class Teacher extends Person {
}
public static void main(String[] args) {//Object>String//Object>Person>Teacher//Object>Person>StudentObject object=new Student();//System.out.println(x instanceof y);//能不能编译通过!System.out.println(object instanceof Student);//trueSystem.out.println(object instanceof Person);//trueSystem.out.println(object instanceof Object);//trueSystem.out.println(object instanceof Teacher);//falseSystem.out.println(object instanceof String);//falseSystem.out.println("=================================");Person person=new Student();System.out.println(person instanceof Student);//trueSystem.out.println(person instanceof Person);//trueSystem.out.println(person instanceof Object);//trueSystem.out.println(person instanceof Teacher);//false//System.out.println(person instanceof String);//编译报错System.out.println("=================================");Student student=new Student();System.out.println(student instanceof Student);//trueSystem.out.println(student instanceof Person);//trueSystem.out.println(student instanceof Object);//true//System.out.println(student instanceof Teacher);//编译报错//System.out.println(student instanceof String);//编译报错
}
类型转换:
1.父类的引用指向子类的对象
2.把子类转换为父类,向上转型
3.把父类转换为子类,向下转型;需要强制转换
4.方便方法的调用,减少重复的代码!简介
**抽象:封装、继承、多态 **
抽象类,接口
public static void main(String[] args) {//类型之间的转换: 父 子//高 低
// Person obj=new Student();
//
// //student将这个对象转换为Student类型,我们就可以使用Student类型的方法了
// //Student student=(Student)obj;
// ((Student)obj).go();//子类转父类,可能丢失自己的本来的一些方法!Student student=new Student();student.go();Person person=student;}