Java知识(多态和引用类型转换)
来源:互联网 发布:石头人升级数据 编辑:程序博客网 时间:2024/06/04 19:17
1.多态
使用方法重载时,容易出现频繁修改代码,代码可拓展性、可维护性差,这时可以用多态来优化设计
多态:同一个引用类型,使用不同的实例而执行不同的操作。例如父类引用子类对象
如何使用多态:使用继承;子类重写父类方法;父类引用子类
多态的优点:
1.可替换性。多态对已存在的代码具有可替换性。
2.可扩充性。多态对代码具有可扩充性。增加新的子类不影响已存在类的多态性、继承性,以及其他特性的运行和操作。实际上新加子类更容易获得多态功能
3.接口性。多态是超类通过方法签名,向子类提供了一个相同接口,由子类来完善或者覆盖它而实现的。
4.灵活性。它在应用中体现了灵活多样的操作,提高了使用效率。
5.简化性。多态简化了对应用软件代码的编写和修改过程,尤其在处理大量对象的运算和操作时,这个特点尤为突出和重要。值得注意的是,多态并不能够解决提高执行速度的问题,因为它基于动态装在和地址的引用,或称动态绑定。
多态的特点:
属性或静态方法看左边声明的类型,左边如果是父类,调用的是父类的方法,如果是子类,调用的是子类方法
成员方法看右边类型,右边如果是父类,调用的是父类的方法,如果是子类,调用的是子类方法
2.引用类型转换
向上类型:
1.父类引用子类;
2.可见性:子类重写父类方法;
3.应用:多态
向下转型:
1.强制类型转换,父类转换子类
2.应用:类型的还原
3.instanceof运算符:
(1)判断一个对象是否属于一个类或者实现接口
(2)强制类型转换之前通过instanceof运算符检查对象的真实类型,可以避免类型转换异常,从而提高代码健壮性
/**
* 一个java文件中只能包含一个public类
* @author Administrator
*
*/
public class Ch03 {
public static void test(F f) {
f.t();
// C2 c2=(C2)f;
// c2.t2();
//在强转前可以先判断类型
if(f instanceof C2) {
//可能出现类型转换错误
((C2)f).t2();
} else {
System.out.println("该类型不是c2类型");
}
}
public static void main(String[] args) {
C1 c1=new C1();
test(c1);
}
}
class F{
public void t(){
}
}
class C1 extends F{
}
class C2 extends F{
public void t2() {
}
}
阅读全文
0 0
- Java知识(多态和引用类型转换)
- Java多态之引用类型转换
- Java多态中的引用类型转换
- java多态中的引用类型转换
- Java 引用类型转换
- 多态引用类型转换
- Java多态中的引用类型转换理解模型
- Java的引用类型转换
- Java引用类型 Java类型转换疑惑
- 指针和引用,类型转换
- 多态中的引用类型转换
- 多态中的引用类型转换
- java引用类型的强制类型转换
- JAVA引用类型强制类型转换
- java引用类型的强制类型转换
- JAVA学习-多类中的引用类型转换
- JAVA IO流实现字节数组与任何基本类型和引用类型的相互转换
- java学习日记——多态中的引用类型转换
- LAmbda表达式 C#版
- Echarts数据可视化开发参数配置全解
- 杭电暑期多校集训—Euler theorem
- node embedding
- 常见的信号平滑处理方法
- Java知识(多态和引用类型转换)
- Linux 获取设备树源文件(DTS)里的资源
- Windows下进行Django开发
- 《转》怎样在latex中插入jpg图片
- (0062)iOS开发之Xcode自带单元测试UnitTest
- HDU 6124 Euler theorem
- 神经网络和深度学习(二)——一个简单的手写数字分类网络
- 第一行代码(四)Fragment
- i2c 协议解析