多态的基础

文章介绍了Java中多态性的概念,包括方法的重写和重载,以及对象的多态性。通过实例展示了如何通过父类引用调用子类方法,以及多态的向上转型。同时强调了在多态中父类引用不能调用子类独有的方法。
摘要由CSDN通过智能技术生成

1.1多态的概念

同一件事情,不同的对象执行方法有不同的结果

1.2方法的多态

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

/*
 * 重写和重载是方法的多态
 */
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();
	}

}

1.3对象的多态

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

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();
	}

}

1.4多态的转型

1.4.1多态的向上转型

语法格式:

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

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

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

/*
 * 多态的向下转型
 */
package com.y.lianxi;

class Animal1{
	public void eat() {
		System.out.println("吃饭");
	}
}
class Dog1 extends Animal1{
	@Override
	public void eat() {
		System.out.println("吃骨头");
	}
}
class Cat1 extends Animal1{
	@Override
	public void eat() {
	System.out.println("吃猫粮");
	}
}
public class Lianxi16 {
	public static void main(String[] args) {
		Animal1 animal = new Dog1();
		Dog1 dog = (Dog1) animal;
		animal.eat();
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值