Java基础笔记16-多态

Java基础笔记16-多态

1.简介
  • 多态是同一个行为具有多个不同表现形式或形态的能力。
  • 语法格式:父类类型 变量名 = new 子类类型();
  • 必要注意点:必须是有继承或实现的关系,(而且有方法重写)。
  • 当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的同名方法。
  • 多态的好处:可以使程序有良好的扩展,并可以对所有类的对象进行通用处理。

多态的基本使用举例:

public class DuoTaiDemo {

	public static void main(String[] args) {
		//定义一个新树对象
		Tree tree1 = new Tree();
		//向上转型,多态的默认语法格式
		Plants tree2 = new Tree();
		//调用方法
		tree1.leaf();//植物都有叶子,  使用的是继承的父类方法
		tree1.seed();//树的种子形态多种多样,   使用的是子类重写方法
		tree1.root();//树的根蔓延范围很大,   子类特有方法
		
		tree2.leaf();//植物都有叶子,    使用的是继承的父类方法
		tree2.seed();//树的种子形态多种多样, 子类对象,子类中重写过此方法,就执行子类中的方法
		//tree2.root();//由于tree2的类型为父类Plants,在子类中能直接使用的只有从父类中重写的方法,不能使用子类中特有的方法
		
		//强制类型转换,让tree2转换成子类类型,从而使用子类中的特有方法
		Tree tree3 = (Tree)tree2;
		tree3.root();//树的根蔓延范围很大
	}
}

class Tree extends Plants{
	//树的种子
	@Override
	public void seed() {
		System.out.println("树的种子形态多种多样");
	}

	//树的根
	public void root() {
		System.out.println("树的根蔓延范围很大");
	}
}

class Plants{
	//植物的种子
	public  void seed() {
		System.out.println("植物都有种子");
	}	
	//植物叶子
	public void leaf() {
		System.out.println("植物都有叶子");
	}	
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值