(2)方法名相同,返回值类型和修饰符相同
方法体不同有时候子类会替代父类的方法
多态的形式一:public void feed(Pet pet){
pet.eat(); }mas.feed(cst);
父类做形参,子类做实参
程序中的多态,由于条件按不同,产生的结果也不同多态:同一个引用类型,使用不同的实例而进行不同的操作,父类引用子类对象
多态的第二种形式; //父类做类型子类实例化 Pet pet2=new Cat();//new Dog就走Dog //做什么事情就调用什么事情的方法ti pet2.eat();向上转换称为自动转换
多态的第三种形式:
父类作为方法的返回类型,子类作为实例化。(类型自动转换)
public Pet getPet(int typeid){ Pet pets=null; if(typeid==1){ pets=new Dog(); }else if(typeid==2){ pets=new Cat(); }else if(typeid==3){ pets=new Penguin(); } return pets; }intanceof子类转换为父类:向上转型,自动类型转换
向下转换:父类转换为子类,结合instanceof运算符进行(判断是否是子类,/父类)强制类型转换(用于进行强制类型转换)多态,搞了半天多写几个例子,就好了
所谓多态就是指一个类实例的相同方法在不同情形有不同表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通过相同的方式予以调用。