【java】【多态】的一个小例子
来源:互联网 发布:淘宝店铺优惠券平台 编辑:程序博客网 时间:2024/05/30 02:22
首先要了解什么是多态?
:在面向对象语言中,接口的多种不同的实现方式即为多态。具体来说,就是不同子类作为参数使用同一父类的方法
时的实现方法是不同的。
多态的表现形式有哪些?
1.重载overload,是发生在同一类里的。
标识一个函数除了函数名外,还有函数的参数(个数和类型),也就是说,一个类中可以有两个或更多的函数,叫同一个名字而他们的参数不同。简单来说
就是对重名函数进行重写,往往根据参数的不同来区分。
2、覆盖override,是发生在父类和子类之间的。这种关系要求必须有extends(继承)。
实现多态的技术是什么?
动态绑定。是指在执行期间判断引用对象的类型,根据其实际的类型调用其相应的方法。
多态存在的必要条件是什么?
1.要有继承
2.要有重写override
3.父类引用指向子类对象(常用instanceof来判断)
使用多态有哪些好处?
1.可替换性 2.可扩充性 3.接口性 4.灵活性 5.简化性
下面给一个自己写的多态override的小例子:
class A extends Main{public String show(A obj){System.out.println("调用了A的show方法");return "A";}}class B extends Main{public String show(B obj){System.out.println("调用了B的show方法");return "B";}}class C extends A{public String show(C obj){System.out.println("调用了C的show方法");return "C";}}public class Main{public static void main(String[] args){Main u = new Main();A a = new A();B b = new B();C c = new C();System.out.println(u.show(c));//改变c的值为a,b,看结果}public String show(Main main){if(main instanceof A){System.out.println("以A类为对象调用show方法");}if(main instanceof B){System.out.println("以B类为对象调用show方法");}if(main instanceof C){System.out.println("以C类为对象调用show方法");}return "main";}}其中A,B类是Main类的子类,C是A的子类,改变
(u.show(c))的值。
特别的,如果Main引用指向C对象,那么它同时也指向C对象的父类:A对象。
所以结果是这样的:
以A类为对象调用show方法以C类为对象调用show方法main
0 0
- 【java】【多态】的一个小例子
- java继承的一个小例子
- 一个简单的 java socket 小例子
- 一个java执行exe的小例子
- java.nio的一个小例子
- java button tooltip的一个小例子
- java线程的一个小例子
- Java内存泄露的一个小例子
- Java内存溢出的一个小例子
- 一个java正则表达式的小例子
- 一个小的例子
- 简单的关于java的伪泛型的一个小例子
- 利用java实现的一个发送手机短信的小例子
- 利用java实现的一个发送手机短信的小例子
- 利用java实现的一个发送手机短信的小例子
- 利用java实现的一个发送手机短信的小例子
- 利用java实现的一个发送手机短信的小例子
- 利用java实现的一个发送手机短信的小例子
- 表达式求值
- 用Tomcat内置容器JNDI创建一个Session来实现注册成功后给用户发送一条邮件
- adb shell获取root权限
- 修改返回token内容与手工获取token
- 我的java开始
- 【java】【多态】的一个小例子
- LeetCode 154 -Binary Tree Postorder Traversal ( JAVA )
- 前端性能优化--文件位置问题
- mysql 的 select into
- MySQL学习笔记10(MySQL函数)
- maven查询地址以及公共仓库
- git(1) -- git branch
- Python贴吧小爬虫
- Java并发编程:深入剖析ThreadLocal