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

Java 多态

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

Java 多态

多态是面对对象程序设计的三大支柱之一,剩余两个面对对象程序设计的支柱为继承和封装。

多态:一个对象具备多种形态,也可以理解为事物存在的多种体现形态。

多态是同一个行为具有多个不同表现形式或形态的能力。

多态就是同一个接口,使用不同的实例而执行不同操作。

多态可以让父类型的变量可以引用子类型的变量。

多态存在的三个必要前提:

1.继承

2.重写

3.父类引用子类对象

多态成员变量:编译、运行看左边。

多态成员方法:编译看左边,运行看右边。

多态现实意义理解:

现实事物经常会体现出多种形态,如学生,学生是人的一种,学生张三既是学生也是人,即出现两种形态。                                                                                                            

Java作为面向对象的语言,同样可以描述一个事物的多种形态。

例如人可以依据不同的岁数被分为儿童,青年,成人,老人,而不同年龄的人的饮食跑步风格也有所不同:

public class DTER {
//不同时期的人的饮食习惯和走路习惯
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		People a = new People();
		children b = new children();
		teenager c = new teenager();
		adult d = new adult();
		elder e = new elder();
        People f = new adult();
		a.Time();
		b.Time();
		b.Eat();
		b.RunStyle();
		c.Time();
		c.Eat();
		c.RunStyle();
		d.Time();
		d.Eat();
		d.RunStyle();
		e.Time();
		e.Eat();
		e.RunStyle();
		f.Time();
	}

}
class People{//父类
	public void Time() {
		System.out.println("反正是个人");
	}
}
class children extends People{//子类
	public void Time() {//重写
		System.out.println("幼儿");
	}
	public void Eat() {//子类特有功能
		System.out.println("喝奶");
	}
	public void RunStyle() {//子类特有功能
		System.out.println("爬");
	}
}
class teenager extends People{//子类
	public void Time() {//重写
		System.out.println("青年");
	}
	public void Eat() {//子类特有功能
		System.out.println("饭等");
	}
	public void RunStyle() {//子类特有功能
		System.out.println("跑");
	}
}
class adult extends People{//子类
	public void Time() {//重写
		System.out.println("成人");
	}
	public void Eat() {//子类特有功能
		System.out.println("快餐(为了快)");
	}
	public void RunStyle() {//子类特有功能
		System.out.println("走");
	}
}
class elder extends People{//子类
	public void Time() {//重写
		System.out.println("老人");
	}
	public void Eat() {//子类特有功能
		System.out.println("稀粥等");
	}
	public void RunStyle() {//子类特有功能
		System.out.println("慢走");
	}
}

输出(不要太过在意输出的内容):

反正是个人
幼儿
喝奶

青年
饭等

成人
快餐(为了快)

老人
稀粥等
慢走
成人

多态的转型 :

多态的转型分为向上转型和向下转型两种 

向上转型:多态本身就是向上转型过的过程

向下转型:一个已经向上转型的子类对象可以使用强制类型转换的格式,将父类引用类型转为子类引用各类型 

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

版权所有 (c)2021-2022 MSHXW.COM

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