多态是什么?

文章探讨了Java编程中的多态性概念,包括方法的重载(overloading)和重写(overriding),以及对象的多态性。方法重载是同名方法的不同参数形式,而重写是子类对父类方法的重新定义。对象的多态性允许父类引用指向子类对象,但不能调用子类特有的方法。此外,文章还提到了多态的向上转型和向下转型,前者是自动的,后者则需要强制类型转换。
摘要由CSDN通过智能技术生成

多态简单的说就是同一种行为的多种表现形式

方法的重载和重写就是方法的多态

/*
 * 重写和重载是方法的多态
 */
package com.u.tt;
class People3{
	public void eat() {
		System.out.println("吃饭");
	}
	public void eat(String name) {   //方法的重载
		System.out.println("吃好吃的饭");
	}
}
class Man extends People3{
	@Override
	public void eat() {        //方法的重写
	System.out.println("吃肉");
	}
}
public class Demo2 {
	public static void main(String[] args) {
		People3 people = new People3();
		people.eat();
		people.eat("张三");
		Man man = new Man();
		man.eat();
	}

}

对象的多态

父类的引用指向子类的对象

Dog dog = new Dog();

条件:

1.必须是继承关系

2.必须重写父类的方法

3.父类的引用指向子类的对象,不能调用子类独有的方法

/*
 * 对象的多态
 */
package com.y.lianxi;

class Animal{
	public void eat() {
		System.out.println("吃饭");
	}
	public void sleep() {
		System.out.println("睡觉");
	}
	public void drink() {
		System.out.println("喝水");
	}
}
class Cat extends Animal{
	@Override
	public void eat() {
		System.out.println("吃猫粮");
	}
	@Override
	public void sleep() {
		System.out.println("站着睡觉");
	}
	public void work() {
		System.out.println("工作");
	}
}
public class Lianxi15 {
	public static void main(String[] args) {
		Animal animal = new Cat();
		animal.eat();  
		//animal.work();调用不了子类独有的方法
		animal.drink();
	}

}

多态的转型

多态的向上转型

语法格式:

父类  父类的引用    =   new  子类 ();

向上转型是自动将子类的对象赋给父类的引用

父类的引用可以调用父类所有方法,但是不能调用子类独有的方法!

多态的向下转型

语法格式:

父类   父类的引用   =   new  子类();
子类   子类的引用   =   (子类) 父类的引用;    强制转换

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值