多态:事物存在的多种体现形态。
例子:
abstract class Animal{
abstract void eat();
}
class Cat extends Animal{
public void eat(){
System.out.println(“吃鱼”);
}
public void sound(){
System.out.println(“喵喵”);
}
}
main方法中 可以 Animal a=new Cat();
如果想要 想要调用子类中特有的方法,必须强制转型。
Cat c=(Cat)a;
c.sound().
多态自始至终都是子类对象在做变化。
instanceof 判断某一对象是不是某一类型。
class Fu{
void method1(){
System.out.println(“fu1”);
}
void method2(){
System.out.println(“fu2”);
}
}
class Zi extends Fu{
void method1(){
System.out.println(“zi1”);
}
void method3(){
System.out.println(“zi3”);
}
}
main(){
Fu f=new Zi();
f.method1();
f.method2();
f.method3();
}
上述例子编译不通过。
在编译时,看父类中是否有所在的方法,父类中没有method3,所有失败。
编译看左,编译通过后,运行时看右。
object类 :是所有类的直接或者间接父类
定义了很多方法。如equals(),tostring(),写的时候很多情况需要覆写。