2022.01.06多态练习
2022/1/7 6:05:45
本文主要是介绍2022.01.06多态练习,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1.什么是多态性?什么是虚拟方法调用?
①父类的引用指向子类的对象;
②父类引用的对象调用子类中同名的方法时,优先调用的是子类重写的方法。
对象的多态性:父类的引用指向子类的对象。
Person p = new Man();
p.eat();
调用方法时,编译时看左边,运行时看右边。
2.一个类可以有几个直接父类?(一个)
一个父类可有多少个子类?(多个)
子类能获取直接父类的父类中的结构吗?(可以)
子类能否获取父类中private权限的属性或方法?(可以)
3.方法的重写(override/overwrite)的具体规则有哪些?
①不能重写父类中声明为private、final的方法;
②重写方法的参数列表、名称必须和父类相同;
方法名、形参列表相同
权限修饰符
返回值
抛出的异常
4.super调用构造器,有哪些具体的注意点?
super在构造器中必须声明在首行,不能和this同时使用;
this(形参列表):本类重载的其它的构造器
super(形参列表):调用父类中指定的构造器
5.在下面的代码结构中:使用关键字:this,super;方法的重写;继承;
public class Circle { private double radius; public Circle() { } public Circle(double radius) { this.radius = 1; } public double getRadius() { return radius; } public void setRadius(double radius) { this.radius = radius; } public double findArea(double radius) { return Math.PI * radius * radius; } } class Cylinder extends Circle { private double length; public Cylinder() { } public Cylinder(double length) { super(1); this.length = 1; } public double getLength() { return length; } public void setLength(double length) { this.length = length; } public double findVolume(double radius, double length) { return super.findArea(radius) * length; } public double findArea(double radius) { return super.findArea(radius) * 2 + Math.PI * 2 * radius * length; } } class CircleTest { public static void main(String[] args) { Cylinder cyc = new Cylinder(1); System.out.println(cyc.findArea(cyc.getRadius())); } }
这篇关于2022.01.06多态练习的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-28微服务架构中API版本控制的实践
- 2024-09-28AI给的和自己写的Python代码,都无法改变输入框的内容,替换也不行
- 2024-09-27Sentinel配置限流资料:新手入门教程
- 2024-09-27Sentinel配置限流资料详解
- 2024-09-27Sentinel限流资料:新手入门教程
- 2024-09-26Sentinel限流资料入门详解
- 2024-09-26Springboot框架资料:初学者入门教程
- 2024-09-26Springboot框架资料详解:新手入门教程
- 2024-09-26Springboot企业级开发资料:新手入门指南
- 2024-09-26SpringBoot企业级开发资料新手指南