java继承,多态

1.继承性:

(1)在父类定义的东西,在子类就自动有了,可以去调用父类的所有属性,方法

特殊:例如父类有private,也会继承,但是封装性的影响使得子类不能直接调用,

继承相当于可以把几个类中相同的东西放在一个父类里面,可以去继承父类的

(2)子类可以自己实现功能扩展

2.好处:节约代码量,便于功能的扩展,为多态性的使用提供了前提

3.继承性的格式:class a extends b a为子类,派生类,b为父类,超类,基类

注:

4.java中的规定:

(1)类的单继承性:一个父类可以有多个子类,一个子类只能有一个父类

(2)多层继承:父类和子类是一个相对概念,b是c的直接父类,a是c的间接父类,子类会获取所有父类的属性和方法

4.object类:所有的类都直接或间接继承于object类

会输出一个地址,没有定义tostring,但是会去调用object里面的tostring

但要注意:tostring和object类里面的相同会形成覆盖,但是判断相等那个不会形成覆盖,因为参数列表不一样

 m1==m2?  判断的是是否为一个对象,已知他们各自new了一个不相等

m2==m3?   指向同一个空间,故相等

m1.x==m2.x?  m1.x=4,但m2原本为4,后面改成了6,因为m2.x=m3.x=6,所以不相等

m1.equals(m2)判断数据是否相等?  指向同一对象时相等,故不相等

5.调用——构造方法在类继承中的作用(构造方法是用来赋值的)

利用super——调用父类成员

(1)子类可以在自己的构造方法中使用关键字super调用父类的构造方法,且必须是第一句

(2)若没有使用super,在创建对象的时候会自动执行super,调用父类的无参构造方法,再执行自己定义的构造方法

注意点1:父类通常要有无参构造方法

例如下图:子类中没有super,会去调用父类的无参构造方法,又因为父类含有参构造方法,就没有了无参构造方法,所以执行会报错

 执行注解:lunch继承meal,在lunch中没有super,那么会自动调用父类meal中的无参构造方法为M,然后执行自己即lunch的构造方法为L;sandwich同理,顺序为B,S

6.this和super查询顺序

this:先找本类的,找不到就去父类祖类找

super:先找父类的,找不到再去祖先类找

两种多态

(1)运行时的多态——方法覆盖(重写),子类对父类的实例方法重新定义(方法名,参数列表均相同,考察到底调用哪一个)

(2)编译时的多态——方法重载,也叫做参数多态(方法名相同,参数列表不同,考察自动转换)

7.参数的多态=重载——即方法名相同,但参数列表不相同

(1)方法匹配的原则:先精确匹配,再自动转换

精确匹配:实参和形参类型相同

自动转换

自动匹配的原则:

8、java的动态多态性

 

(1)方法覆盖

总共可以调4个,包括自己的2个和a类的2个(a类中的有一个被覆盖了)

(2)原则(也就是父类怎么来,子类就怎么来)

8.访问继承的成员

(1)如果在子类中定义了和父类同名的属性和静态方法,那会隐藏父类的属性和方法;如果定义了同名的实例方法,那会产生覆盖

(2)如果子类变量访问自己属性,先在子类自己里面去找,找不到再去父类

(3)如果是父类变量引用子类对象的话,要区分

如果是实例方法:看引用对象的实际类型,即new的对象 是谁就是谁的方法

如果是属性和静态方法:看引用变量的类型,即是看他们原本的

9.访问修饰和 final修饰

(1)public,任何地方都可以访问

(2)缺省:类,属性,方法只能在同一个包中被访问

(3)private:只能在自己的类中被访问,可以被继承但是由于封装性会出现问题

(4)protected:自己的类,同一个包中其他的类,其他包中该类的子类

注意:如果是其他包中的该类,一定要是它的子类

总结:

final修饰符:

(1)类修饰符——作为最终类不能有子类(例如math,String)

(2)修饰方法——不能被子类重新定义,即覆盖

(3)定义常量——只能赋值一次即new一次,并且系统不会给它赋初值

11.对象引用转换

(1)对象引用赋值转换(向上转型)例如:学生是人——子类对象赋值给父类引用

(2)对象引用强制转换(向下转型)例如:人是学生?不一定?所以运行时取决于对象的值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值