一、多态
多态:
多态是方法的多态,没有属性
父类和子类,有联系,可以进行类型转换,可能出现类型转化异常 ClassCastException
存在条件:继承关系,子类重写父类方法,父类引用指向子类对象
不能重写:
二、instanceof (类型转化)引用类型
package base.NewMethod;
public class B {
public void go() {
System.out.println("父类的方法");
}
}
package base.NewMethod;
public class A extends B{
public void run() {
System.out.println("子类的方法");
}
}
package base.NewMethod;
public class A1 extends B {
}
package base.NewMethod;
public class C {
//静态方法没有重写,没有static修饰的方法才可以重写,重写方法有着标识
public static void main(String[] args) {
System.out.println("====================");
//Object>B>A
//Object>B>A1
Object object=new A();
System.out.println(object instanceof Object);//true
System.out.println(object instanceof A);//true
System.out.println(object instanceof B);//true
System.out.println(object instanceof A1);//false。A和A1同级
//System.out.println(X instanceof Y)
//能否编译通过,看X类型和Y有没有关系
//true,X指向的类型是Y的子类型
A s1=new A();
s1.run();
B p1=s1;//低转高,自然可以,但是可能丢失一些子类的方法
B s2=new B();
A s3=(A) s2;//高转低,强制转
}
}
二、
面向对象的三大特点:封装、继承、多态
抽象: