instanceof和类型转换
(类型转换)引用类型,判断一个对象是什么类型
instanceof 是 Java 的保留关键字。它的作用是测试它左边的对象是否是它右边的类的实例,返回 boolean 的数据类型。
1.
public class Person {
}
public class Student extends Person {
}
public class demo2 {
public static void main(String[] args) {
Object object=new Student();
System.out.println(object instanceof Student);//true
System.out.println(object instanceof Person);//true
System.out.println(object instanceof Object);//true
System.out.println(object instanceof String);//false
}
}
2.
public class demo2 {
public static void main(String[] args) {
//高 低
Person obj = new Student() ;
//student将这个对象转化为Student类型,我们就可以使用Student的方法了
Student student = (Student) obj;
((Student) obj).go();
}
}
抽象类
抽象类作用:
在抽象类中定义抽象方法,目的是为了为子类提供一个通用的模板,子类可以在模板的基础上进行开发,先重写父类的抽象方法,然后可以扩展子类自己的内容。抽象类设计避免了子类设计的随意性,通过抽象类,子类的设计变得更加严格,进行某些程度上的限制。使子类更加的通用。
abstract修饰符可以用来修饰方法也可以用来修饰类,如果修饰方法,那么该方法就是抽象方法,如果修饰类,那该类就是抽象类
抽象类中可以没有抽象方法,但抽象方法的类一定要声明为抽象类
抽象类,不能使用new关键字来创建对象,它是用来让子类继承的
抽象方法,只有方法的声明没有方法的实现他是用来让子类实现的
子类继承抽象类,那么就必须实现抽象类没有实现的抽象方法,否则该类也要声明为抽象类
package demo2;
//4.一个类中如果有方法是抽象方法,那么这个类也要变成一个抽象类。
//5.一个抽象类中可以有0-n个抽象方法
public abstract class Person {
//1.在一个类中,会有一类方法,子类对这个方法非常满意,无需重写,直接使用
public void eat(){
System.out.println("一顿不吃饿得慌");