JAVA继承、final、super、覆写、多态

今天是来到天亮的第12天,今天学习了继承、final、super、覆写、多态等知识。

继承(extends):

继承是从已有类中,派生出新的类,新的类拥有父类的属性和行为,并且还能扩展新的属性和行为,一个类只能有一个父类,但可以有很多子类,继承可以传递。继承提高了代码的效率,避免了代码的重写,提高代码重用性。语法:[修饰符] class  子类名 extends  父类名{ }

super:

super跟this类比,super代表父类。作用:在成员,构造方法中,区分子类和父类同名的数据,默认子类,想用父类用super.xxx(变量名);在子类构造方法中,调用父类构造方法,也是跟this差不多,在构造方法第一行,二者只能取一,通过参数选择具体那个构造函数。不能出现在静态语句中。

子类构造方法和子类实实例语句块,子类实实例语句块创建一次对象,就执行一次。super语句执行了才算创建对象,所以父类子类构造方法和子类实实例语句块先执行。

 构造方法私有化之后,就不能再被继承了

final:

final : 是修饰符,表示最后的,最终的,不可更改的 . final修饰 没有默认值

类 : final修饰的类 不能被继承

变量 : 没有默认值,不能二次赋值,必须显式赋值(不能有不赋值的情况) 

方法 : final修饰的成员方法不能被覆写

final 修饰的静态变量,一般称为常量,

final修饰对象,对象地址不能变,但对象属性可以变。

Override(方法覆写):

当父类功能满足不了子类需求时需要进行方法覆写。

条件:有继承关系,父子方法名一致,参数列表一致,返回值一致,不能有更宽泛的异常,不能有更低的访问权限。目的是使功能越来越强,使用范围越来越广,错误越来越少。

@Override是源码注解,在编译的时候,判断该方法是否是覆写的方法,防止写错,仅此而已,生成class之后该注解就会被去掉。如果不加,比如方法名写错了,那么最多也就是两个方法,不会报错,但是加上@Override就会进行校验操作

多态:

多态是面向对象的重中之重,多态就是里氏替换原则的一种体现 能使用父类的地方就一定可以使用子类。多态 就是 父类引用指向子类对象,通过父类创建的一个引用类型变量,找到了子类的对象,有变量的地方,就能发生多态,并且多态发生在赋值的时候 多态的缺点 : 丢失子类特有的属性

多态三种形式1.直接多态,2.形参实参3.返回值形态

多态进行属性调用 : 
1 父类没有的,都调用不了(因为多态缺点,丢失子类特有的属性)
2 父类有的,子类没有的,执行父类
3 父类和子类都有,除了成员方法执行子类,其他全部执行父类(因为只有成员方法可以覆写)

多态父类引用指向子类对象,通过子类的对象找到子类对父类的方法覆写,并调用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值