标签:01 Pet 18 多态 master 2021 子类 new 父类
java中的多态
多态:多态是建立在继承和重写的基础上.
1.生活中多态的概念:同一种事物由于外界条件不同,而执行不同操作或产生不同状态.
2.程序中多态的概念:用父类或父接口作为数据类型,指向不同子类对象调用同一个方法,而执行不同操作.
多态的第一种应用:
用父类或父接口作为数据类型,创建不同子类对象,而执行不同操作.
// 多态的第一种应用
// 父类作为一种数据类型,创建子类对象
Pet p1=new Cat();
Pet d1=new Dog();
p1.eat();
d1.eat();
多态的第二种应用:
用父类或父接口作为方法的形参,实参传递子类对象,而执行不同操作
// 多态的第二种应用
// 父类作为方法的形参,实参传递子类对象
Cat cat=new Cat();
Dog dog=new Dog();
Master master=new Master();
master.feedPet(cat);
master.feedPet(dog);
public class Master {
public void feedPet(Pet p){
System.out.println("主人在喂食");
p.eat();
}
多态的第三种应用:
用父类或父接口作为方法的返回值类型,实际返回一个子类对象
/**
* 多态的第三种应用,父类充当返回值类型,实际上返回一个子类对象
*/
// 创建master对象
Master master = new Master();
Pet p1=master.lookupPet("猫");
p1.voice();
Pet pet=master.lookupPet("狗");
pet.voice();
// 父类作为返回值类型
public Pet lookupPet(String name) {
Pet p = null;
if (name.equals("猫")){
p=new Cat();
}
else if (name.equals("狗")){
p = new Dog();
}
return p;
}
标签:01,Pet,18,多态,master,2021,子类,new,父类 来源: https://blog.csdn.net/Jason2881/article/details/112797484
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。