Java 03多态

什么是多态
多态(polymorphism)是具有多种表现形态的特征,同一个实现接口使用不同的实例而执行不同的操作。

多态的优点

1.消除类型之间的耦合关系
2. 可替换性
3. 可扩充性
4. 接口性
5. 灵活性
6. 简化性

实现多态的必要条件

  • 继承
  • 重写
  • 父类类型指向子类实例

多态的实现

public abstract calss Common{
	public abstract gethom();
	public abstract info()}
public class SE extends Common{
	public void gethome(){}//重写父类定义SE回家的方法
	public void info(){}//重写父类SE的信息方法
	public void present(){}//子类特有方法
}
public class PM extends Common{
	public void gethome(){}//重写父类定义PM回家的方法
	public void info(){}//重写父类PM的信息方法
	public void eat(){}//子类特有方法
}
//定义一个测试类
public class test(){
	public static void main(String[] args){
	//多态实现之一
	Common com=new SE();// 父类类型指向子类实例子类到父类的转换(向上转型)
	com.gethom();//只能调用父类方法或重写父类的方法
	com.info();// gethom() info()调用子类重写父类的方法
	 
	com.present();//编译错误不能调用子类自身特有方法 present()
	//多态实现之二
	show(new SE());//父类类型作为参数 子类作为实例
	show(new PM());
	}
	
	public static void show(Common co){
		co.info();
		if(co instanceof SE){//使用interface判断类型
		SE se=(SE)co;//父类到子类的转换(向下转型)
		se.present();//调用 SE类特有方法
		}else if(co instanceof PM){
		PM pm=(PM)co;
		pm.eat();//PM类特有方法
		}
	//instanceof 运算符用于判断类型 是否属于一个类或接口返回值为Boolean类型
	//比较的类型必须存在继承关系否则编译错误
	}
	
}
发布了10 篇原创文章 · 获赞 7 · 访问量 690

猜你喜欢

转载自blog.csdn.net/weixin_44924238/article/details/102986055