首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java 多态

Java 多态

作者头像
用户2965768
发布2019-04-18 15:28:58
4130
发布2019-04-18 15:28:58
举报
文章被收录于专栏:wymwym
  •  类的转型

先看一个例子

class A{
	
}
class B extends A{
	
}

public class duotai {
	
	public static void main(String[] args) {
		A a = new A();
		B b = (B)a;
	}
}

由于A这个类没有与B建立联系,会报 ClassCastException ,可以通过类的转型来建立联系

class A{
	
}
class B extends A{
	
}

public class duotai {
	
	public static void main(String[] args) {
		A a = new B();
		B b = (B)a;
	}
}

其中 A a  = new B(); 叫类的向上转型,向上转型失去子类方法。  只有向上转型才能向下转型,也就是后面的强制转换,恢复子类所有方法。

  • 方法的多态

      多态的关键是通过父类的引用调用子类重写的方法

    父类引用指向子类对象后,用父类引用调用子类重写的方法,此时多态就出现了

public class duotai2 {

	public static void main(String[] args) {
		Analy a  = new Analy();
		aaa(a);
		Dog dog = new Dog();
		aaa(dog);
		Cat cat = new Cat();
		aaa(cat);	
	}
	public static void aaa(Analy analy){
			analy.shot();
	}	
}
class Analy{
	public void shot(){
		System.out.println("I'm analy");
	}
}
class Dog extends Analy{
	public void shot(){
		System.out.println("I'm a dog");
	}
}
class Cat extends Analy{
	public void shot(){
		System.out.println("I'm a cat");
	}
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年04月08日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档