多态多用不同对象但属于同一类别.如猫狗都属于动物.
代码如下
class animal{
public void eat(){
System.out.println("动物吃xxx");
}
}
class dog extends animal{
//此处 @Override可不写但是最好写上
public void eat()
{
System.out.println("小狗吃骨头");
}
}
class Main{
public static void main(String[] args) {
animal k=new dog();
k.eat();
}
}//这个是多态的基本形式
在多态使用中要记住成员变量编译运行都看左边.调用成员方法编译看左边运行看右边.
class animal{
int year=10;
public void eat(){
System.out.println("动物吃xxx");
}
}
class dog extends animal{
int year=5;
//此处 @Override可不写但是最好写上
public void eat()
{
System.out.println("小狗吃骨头");
}
}
class Main{
public static void main(String[] args) {
animal k=new dog();
k.eat();
System.out.println(k.year);
}
}
//在此例中运行结果如下
![](https://i-blog.csdnimg.cn/blog_migrate/cae00fab573e39aa165c04b8e99a3ac8.png)
此外多态的好处就是无需考虑调用函数时,子类的类别.正如代码父类与子类的所包含的成员方法不同.或者子类有父类所没有的成员方法.可以忽略子类的不同.仅需一个方法就可以给所有子类使用
class animal{
int year=10;
public void eat(){
System.out.println("动物吃xxx");
}
}
class dog extends animal{
int year=5;
//此处 @Override可不写但是最好写上
public void eat()
{
System.out.println("小狗吃骨头");
}
}
class Main{
public static void main(String[] args) {
animal k=new dog();
eatt(k);
}
public static void eatt (animal f){
f.eat();//因为主函数为静态,这个以后会讲
}
}
以上为多态的基本内容.