初学Java---面向对象编程-多态学习


Unit11 多态 部分学习笔记


一、什么是多态?

  • 答:多态(OOP三大特征之一):
    • 一个对象表现出多种形态。
    • 编程角度看:子类对象被声明为父类类型。

二、多态发生的条件:有继承关系或实现关系。

  • 多态的分类:
    • 1.继承类
    • 2.实现接口
1.继承(类)关系:
public class Person { 
	String name;
}
class Student extends Person { 
	int age; 
	public static void main(String[] args) {
		/*没有多态*/
		Person p = new Person();
		/*多态:子类对象被声明为父类类型 */ 
		Person zhangsan = new Student();
		Person lisi = new Student();
		/*类比*/
		double grade = 98;
	}
}
2.实现关系(接口):
interface IPerson {
	public void speak();
}
class Worker implements IPerson{
	@Override
	public void speak() { 
		System.out.println("hello");
	} 
	public static void main(String[] args) {
		IPerson wangwuIPerson = new Worker();
	}

三、为什么使用多态?

  • 1.增强方法的适用性
  • 2.有利于方法的重用
  • 3.软件的扩展。

四、发生多态最多的是:

  • 1.方法传参
  • 2.变量赋值

五、instanceof的作用是什么?

  • 1.Java中的关键字
  • 2.判断对象的类型,返回值是布尔类型(true or false)
  • 3.instance:实例,其实就是对象,创建对象也叫实例化。

六、虚方法调用:

  • 1.虚方法调用:与方法重写有关
  • 2.多态情况下:如果子类重写了父类的方法,方法的调用以子类为准。
public class Animal {
	public void bark() {
		System.out.println("~~~~");
	}
}
class Dog extends Animal {
	public void bark() {
		System.out.println("wangwang~~~");
	}
	public static void main(String[] args) {
		Animal animal = new Animal();
		animal.bark();
		
		Dog erha = new Dog();
		erha.bark();
		//子类对象被声明为父类类型
		Animal dongwu = new Dog();
		//面试题:输出什么?wangwang~~~
		dongwu.bark();
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕兮IT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值