在实际操作中,多态可以让我们不用关心某个对象到底是什么具体类型,就可以使用该对象的某些方法,而这些方法通过一个抽象类或者接口来实现,多态就是提供父类调用子类代码的一个手段而已。下面给一个例子
abstract class Person
{
private String name;
private int age;
Person(String name,int age)
{
this.name = name;
this.age = age;
}
abstract void say();
}
class Student extends Person
{
Student(String name,int age)
{
super(name,age);
}
public void say()
{
System.out.println("I'am a Student");
}
}
class Teacher extends Person
{
private String profession;
Teacher(String name,int age,String profession)
{
super(name,age);
this.profession = profession;
}
public void say()
{
System.out.println("I'am a Teacher");
}
}
class School
{
private String schoolname;
private Person person;
School(String schoolname,Person person)
{
this.schoolname = schoolname;
this.person = person;
}
public void foundPerson()
{
person.say();
}
}
public class TestPolymoph
{
public static void main(String[] args)
{
Student studnet = new Student("lisi",21);
Teacher teacher = new Teacher("dudu",29,"maths");
School school1 = new School("changning",studnet);
School school2 = new School("changning",teacher);
school1.foundPerson();//I'am a Student
school2.foundPerson();//I'am a Teacher
}
}
School方法传递了抽象类Person,具体调用时是根据具体的实际实例化的对象调用对应的方法
强调一下:多态可以让我们不用关心某个对象到底是什么具体类型,就可以使用该对象的某些方法,这就是多态的好处。
希望你能明白。呵呵。
假如的的Car中有100个方法 ,你你那样写岂不是每创建一个对象时都要调用100次,而多态给我们带来了好处,我们只需在基类中(也就是Car类)写出这100个方法,而在调用的时候只需将子类对象传递给基类对象,编译器将会根据具体类的对象调用相应对象的方法,从而简便了编程(省去了每次创建对象都要写100个调用代码),其实我刚学的时候想法也跟你一样,嘿嘿 为了我们有共同的想法,给点分我吧!!!!!!
多态在java编程中是很常用的,在编写多态方法时 所有重载的 方法 所执行的目的是相同的,但是它们的参数有可能不同,比如说:你要求面积,但是你是如果是求圆的面积的话就要知道它的半径,只需知道一个参数,但是求矩形面积的话,就要知道长和宽这两个参数,所以说多态还是比较常用的方法。同时多态在以后系统的维护中也是很重要的~~
很多答案太空了,多态的关键是每个子类都要重写方法,实现了继承了同样的方法名称但是又有每个的特点,就像龙生九子,每个不一样,有两个好处,一个是类关系清晰,另一个是方法调用方便,只要有传入实参就行,很多设计好处要自行体会。
go方法传递的父类。所以只要是继承了该类的子类都可以作为参数传递过去。在现实我们哪知道会不会有新的电脑。总不能都new出来吧!这样的话扩展性更好。