标签:向上 对象 子类 转型 public shout Animal 父类 态变量
多态
多态是值不同类的对象在调用同一个方法是所呈现处多种不同的行为
多态使用条件:
要有继承或者实现的关系
要有方法重写
要有父类引用转向子类对象
作用:消除了类之间的耦合关系,提高了程序的可扩展和可维护性能,耦合指的是代码之间的关联程度
语法格式
父类类名 引用名称 = new 子类类名();
案例
定义父类Animal,类中有父类方法shout()定义两个子类Dog和Cat继承Animal类在子类中重写父类方法输出shout()方法
定义animal类
public class Animal(){
public void shout(){
System.out.println("动物叫声")
}
}
定义Dog子类
public class Dog exdends Animal{
public void shout(){
System.out.println("狗叫")
}
}
定义Cat子类
public class Cat exdends Animal{
public void shout(){
System.out.println("猫叫")
}
}
测试类
public class Test(){
父类引用指向子类对象
Anilal a1 = new Dog()
Anilal a2 = new Cat()
a1.shout();
a2.shout();
}
运行结果
子类重载父类方法,父类中不存在该方法,向上转型后,父类是不能引用该方法的
多态的成员访问特点:
成员变量:编译看父类,运行看父类
成员方法:编译看父类,运行看子类
对象的类型转换
对象的类型转换分为向上转型和向下转型
向上转型:
父类引用指向子类对象
父类类名 对象名 = new 子类类名;
向下转型
由父类引用转成一个对应的真实的子类对象
格式 目标对象类型 对象名 = (目标对象类型)被转换的引用
一定要确保转换的类型相同。否则会发生类型转换异常
标签:向上,对象,子类,转型,public,shout,Animal,父类,态变量 来源: https://www.cnblogs.com/ailhy/p/16365827.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。