面向对象特征:多态性与java基类--object

面向对象最重要的概念:多态性

java中体现多态的两种方式:
(1)方法的重载(本类的同名方法,体现相同的名称方法实现不同逻辑)与重写(子类对父类方法的覆盖,子类可以使用和父类相同的方法名,覆盖掉父类逻辑)
(2)可以直接应用在抽象类和接口上–运行与编译时类型不一致则出现***对象的多态***。
//前提:Person类时Studnet的父类
//正常实例化
Student s = new Student();
Person p = new Person();

//特殊情况讨论
Person e = new Student();
//问题1:e是否可以访问Student中成员变量?
//答:不可以,属性在编译时确定的,编译时为Person类型,没有Student类中的成员变量,所以无法访问
//问题2:若Person与Student类中有同名方法,哪个类中的方法被调用?
//答:Student类中的方法被调用,java的方法是运行在栈内存中,在运行方法时会动态的进栈与出栈,e引用的是在堆中的Student类,所以Student类的方法被调用
instanceof 检验一个对象是否属于某类

基类----object类

object是所有java类的根父类
public class Test{
	public void test(Object obj)
	//问题,想给test方法设置一个形参参数,这个参数不确定到底会传进来一个什么类型,
	//可以确定的是传递实参一定会是一个类,那么test方法的形参要设置一个什么类型?
}

public static void main(String[] args){
	Test t=new Test();
	Person p=new Person();
	Student s = new Student();
	object o = new Student();//所有子类可以调用父类方法
	t.test(p);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值