多态(向上转型)和抽象类的相关介绍

java的多态和抽象类都是在继承的基础上的,所以把握好继承这个基础很重要。

多态,简而言之就是同一个行为具有多个不同表现形式或形态的能力
多态的三个条件:1.继承 2. 重写 3.向上转型

继承和重写不多说,那什么是向上转型?向上转型有什么好处?
向上转型:将子类对象的引用赋值给父类。 那这又是什么意思?看代码
先声明一个父类

package javabasic;

public abstract class Animal {
	public String name;
	private int age;

	public void intro() {
		System.out.println("我是"+name +",今年"+ age + "岁了");
	}
}

又声明了3个子类,因为类越多,越能展示向上转型的优势!

package javabasic;

import com.sun.webkit.ContextMenu.ShowContext;

class Dog extends Animal{
	public void intro() {
		System.out.println("这是小狗的重写方法");
	}
}

class Mouse extends Animal{
	public void intro() {
		System.out.println("这是老鼠的重写方法");
	}
}

class Monkey extends Animal{
	public void intro() {
		System.out.println("这是猴子的重写方法");
	}
}

public class test {
	public static void show(Animal a) {
		a.intro();
	}
	public static void main(String[] args) {
		//新建一个对象,向上转型成Animal类,然后统一的调用某个方法
		Animal dog= new Dog();	//这里就体现了向上转型
		show(dog);
		show(new Mouse());
		show(new Monkey());
	}
}
 - 向上转型的优势
	1. 减少重复代码,使代码变得简洁。  2.提高系统扩展性。

注意点:当你调用函数的时候,向上转型系统会自动帮你实现,因为没必要特地声明Animal dog = new Dog();
		正常声明就可以。而且声明出来的对象可以调用自己内部其他方法,就不用再向下转型了。

如果没有向上转型,那么要声明的函数个数是相当多的函数show(Dog d), show(Bird b), show(Cat c)……

抽象类是把父类进行抽象,pubic abstract class Animal{ },里面可以添加抽象方法,但抽象方法体必须为空(留着给子类自己去实现)。如果类中含有抽象方法,那么这个类必须是抽象类。抽象类不能被实例化,也就是说不能new出来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值