java面向对象多态性,面向对象编程 多态
多态的简单理解:
如果学生类继承了person类,则学生类的对象既是学生又是Person类。
多态性具有两种展现的形式:
1.方法的多态性:
(1)方法重载:同一个方法可以根据传入参数的类型或个数实现不同的功能。
(2)方法覆盖:同一个方法根据不同的实现子类,可能有不同的实现。
2.对象的多态性:
父类和子类实例之间的转换
(1)对象向上转换:父类实例=新子类实例();自动转换
(2)对象向下转换:子类子类实例=new(子类)父类实例();完成强制转换。
分享相关视频教程:java免费视频教程
多态的最终体现:
1.父类的引用变量可以指向子类对象。
2.多态的前提是必须有父子类关系或者类接口关系,否则不能实现多态。
3.当使用多态父类引用变量调用方法时,将调用子类重写的方法。
多态的成员变量:
1.编译时,引用父类没有这个变量。如果是,它将编译成功;如果不这样做,它就会失败。
2.在运行时,运行父类中的变量值。
成员编译和运行都依赖于父类。
多态的成员方法:
1.编译时参考父类中是否存在该方法。如果是,则编译成功;如果没有,就会失败。
2.当它运行时。运行子类的重写方法。
成员编译查看父类,运行查看子类。
对象的两种转型方式的理解:
1.对象向上转型:
向上转换后,子类对象只能调用父类拥有的方法,不能单独调用子类拥有的方法,通过向上转换可以使用多态性。
2.对象向下转型:
如果要在对象向上变换后使用子类而非父类独有的方法,则需要使用对象的向下变换。
代码演示:
公共类人员{
public void Eat(){
//在person类中定义一个抽象的吃饭方法
}
}
公共课学生拓展人{
public void Eat(){
System.out.println(“学生吃学校食堂”);//重写父类中的抽象方法
}
公共void学习()
{
System.out.println(学生在学习);//定义学生类独有的方法
}
}
公共类测试{
公共静态void main(String[] args) {
//TODO自动生成的方法存根
Person p=新生();//通过向上变换定义一个P对象
页(page的缩写)吃();//这是孩子和家长共有的方法。
页(page的缩写)学习();
}
}在这段代码中,我们通过向上转换来调用一个特定于子类的方法,但是我们会提示下图:
如何解决写爬虫IP受阻的问题?立即使用。
父类中没有定义学习方法。但是我们要调用子类的唯一方法,这个时候就需要通过向下转换来实现。
补充代码如下:
学生stu=(学生)p;//将P对象向下转换以实现方法调用
斯图。学习();要了解更多相关教程,请访问:java快速入门。以上是java面向对象多态性的详细内容。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。