java中多态的例子_java中的多态案例
多态性实际上有两种:
1.方法的多态性:
1.1方法重载:相同的方法名,会根据传入的参数的类型和个数不同执行不同的方法
1.2方法覆写:同一个方法名称,会根据子类的不同实现不同的功能
2.对象的多态性:指的是发生在类的继承中,子类和父类之间相互转换
1.1向上转型(自动完成):父类 父类对象 = 子类实例
2.2向下转型:子类 子类对象 =(父类)父类实例;
由于父类可以有多个子类,而一个子类所拥有的父类个数不会太多,向上转型不会出现编译错误,而向上转型有可能出现编译时候的错误
class A{
public void print(){
System.out.println("A中的方法");
}
}
class B extends A{
public void print(){
System.out.println("B中的方法");
}
}
public class Test{
public static void main(String args[]){
A a =new A();
B b = (B) a;
b.print();
}
}
/*
Exception in thread "main" java.lang.ClassCastException: A cannot be cast to B
at Test.main(Test.java:14)
*/
以上的代码出现了类转换的异常,指的是两个两个没有关系的类对象发生强制的向下转型所带来的异常,
instanceof关键字的使用;该关键字主要是判断某个对象是否是一个类的实例:
对象 instanceof 类//返回的是boolean
classA{public voidprint(){
System.out.println("A中的方法");
}
}class B extendsA{public voidprint(){
System.out.println("B中的方法");
}
}public classTest{public static voidmain(String args[]){
A a= newB();if(a instanceofB){
B b=(B)b;
}
b.print();
}
}
注意点:向下转型发生之前,一定要先发生对象的向上转型
范例:向上转型实例
classA{public voidprint(){
System.out.println("A中的方法");
}
}class B extendsA{public voidprint(){
System.out.println("B中的方法");
}
}public classTest{public static voidmain(String args[]){
A a= new B();//向上转型
a.print();//B中的方法
}
}
java中多态的例子_java中的多态案例相关推荐
- java 线程不安全例子_Java中多线程安全问题实例分析
案例package com.duyang.thread.basic.basethread; /** * @author :jiaolian * @date :Created in 2020-12-16 ...
- java抽象类有什么用_java中抽象类的作用是什么?抽象类作用的例子
你知道java当中抽象类的作用是什么吗?有什么作用?下面和小编一起来详细的了解一下具体的作用,以及看看抽象类作用的例子吧! 一.java抽象类的作用 java抽象类的作用具体的可以分成以下的三点: 1 ...
- java中的多态是什么_java中多态是什么意思?
展开全部 什么是多态 1.面向对象的三大特性:封装.继承32313133353236313431303231363533e78988e69d8331333365653137.多态.从一定角度来看,封装 ...
- java中的 的意思_java中 的意思是什么意思是什么意思是什么意思
关于 java中 的意思是什么意思是什么意思是什么意思的搜索结果 问题 java中 的意思是什么意思是什么意思是什么意思 java中 的意思是什么意思是什么意思是什么意思... 云计算小粉 2019- ...
- java父类声明子类实现_java中父类声明子类实例化
问题: 1.比如两个类父类:Person 子类 Student extends Person在使用时候,这样写:Person person=null; //声明对象person=new Student ...
- java序列化有什么用_java中序列化的作用
一 什么叫序列化 通俗点讲:它是处理对象流的一种机制,即可以很方便的保存内存中java对象的状态,同时也为了方便传输. 二 序列化有什么作用 1.方便传输,速度快,还很安全,被调用方序列化,调用方反 ...
- java修改list中对象的值_Java中List集合的一点总结
为什么要用接口引用指向实现类的对象? 这种写法其实java多态的表现形式 多态的定义: 指允许不同类的对象对同一消息做出响应. 即同一消息可以根据发送对象的不同而采用多种不同的行为方式. (发送消息就 ...
- java set取最大最小_Java中取得数组中最大(小)元素的几种实现方法
简介 本篇文章将主要介绍获取数组中最大(小)元素的基本方法,以及其在Java中的几种实现方法. 算法 取得数组中最大(小)元素的基本算法一般都类似于如下所示: SET MAX to array[0] ...
- java类怎么删除对象_java中对象的生成使用和删除
请教大神,在java里,对象生成后,如何删除对象呢?请教大神,在java里,对象生成后,如何删除对象呢? 对象状态由JVM自动管理,GC线程自动回收无用对象,无需也不能自己删除对象. 请问在JAVA中 ...
最新文章
- fcm算法的MATLAB实现,FCM算法的matlab程序(初步)
- 中南大学计算机跻身国内前10,南方科大工程排名超北航丨泰晤士2021世界大学学科排名...
- hdu 4568 Hunter bfs建图+TSP状压DP
- Ubuntu 11.10中用xen-tools安装虚拟机(UbuntuCentOS)
- c++ 私有内部类_C++类成员的访问权限以及类的封装
- 程序员如何选择适合的公司
- GNU/Linux的历史
- 请教大家,如何使用sed命令,替换文件指定行的内容呢?-Linux系统管理-ChinaUnix.net...
- centos 7 快速安装nginx
- 互联网的逻辑和电商的逻辑是不一样的
- Ubuntu Mysql安装配置
- protel99se中文版
- OpenGL with QtWidgets:屏幕坐标转世界坐标
- 仿站和模板建站的区别_快速仿站工具,全能扒站助手
- Logback使用总结
- 浅析计算机用户身份识别技术,(浅析身份认证技术.doc
- has leaked window com.android.internal.policy.impl.PhoneWindow解决(Dialog.cancel、dismiss、hide区别)
- 《读九章算术学Python》如何用Python编程实现盈不足术?附图解分析、代码实现和习题解答
- 移动app测试经验分享
- 目前大数据在金融行业的应用主要体现在哪些方面?
热门文章
- 程序员基本功09 线性表
- 如何在vue-cli3中使用tinymce
- jquery 验证小数点后几位_利用jquery实现验证输入的是否是数字、小数,包含保留几位小数...
- html在状态栏中显示时间,html网页时间显示代码和倒计时代码大全
- delete不调用析构函数的两种情况
- Android文件存储方式之openFileOutput与获取数据openFileInput
- post 表单中常见的四种表单请求方式
- 再谈 retain,copy,mutableCopy(官方SDK,声明NSString都用copy非retain)
- Java线程池ThreadPoolExecutor
- restful 接口 安全性设计