栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > Java

Java基础-多态性

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java基础-多态性

关于java语言当中出现的多态语法机制:【基础语法】

1.Animal,Cat,Bird三个类之间的关系:

  • Cat继承Animal
  • Bird继承Animal
  • Cat和Bird之间没有任何的继承关系

2.关于多态中涉及到的几个概念:

  • 向上转型 (upcasting)

    • 子类型 -->父类型 又被称为:自动类型转换
    • 向下转型(downcasting)
  • 向下转型(downcasting)

    • 父类型 -->子类型 又被称为:强制类型转换【需要加强制类型转换符】

3.需要记忆:

无论是向上转型还是向下转型,两种类型之间必须要有继承关系

没有继承关系,程序时无法编译通过的。

示例代码:

public class Test {

	
	public static void main(String[] args) {
	 
		//以往的对象创建方式
		Animal a1 = new Animal();
		a1.move();
        
		Cat c1 = new Cat();
		c1.move();
		c1.CatCatch();
	
		Bird b1 = new Bird();
		b1.move();
		
		//多态的方式创建
        
		Animal a2 = new Cat();
	
		a2.move();
		
		//a2.Catch();编译报错。
		
		Cat c2 = (Cat)a2;
		c2.move();
		c2.CatCatch();//猫抓老鼠
		
		//父类型引用指向子类型对象【多态】
		Animal a3 = new Bird();
		
		//Cat c3 = (Cat)a3;
		
		
		if(a3 instanceof Bird){//a3是一个Bird类型的对象
			Bird b2 = (Bird)a3;
			b2.move();
			b2.fly();
		}else if(a3 instanceof Cat){//a3是一个Cat类型的对象
			Cat c3 = (Cat)a3;
			c3.move();
			c3.CatCatch();
		}
		
		
	}

}

class Animal {
   
	public void move(){
		System.out.println("动物在移动!");
	}
}
class Bird extends Animal {

	public void move() {
		 System.out.println("鸟儿会飞翔!");
	}

	//子类特有事物行为/动作
	public void fly() {
		System.out.println("Bird Fly!");
		
	}

}
class Cat extends Animal {
    
	//重写父类中继承过来的方法
	public void move() {
	  System.out.println("猫在走猫步!");
	}
	
	//不是父类中继承的方法
	//这个方法是子类对象特有的行为【不是说所有的动物都能抓老鼠!】
	public void CatCatch(){
		System.out.println("猫会抓老鼠!");
	}

}
转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/1036896.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号