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

一、继承:

1、继承是从已有类中,派生中新的类,新的类有父类的属性和行为,并且还能扩展新的属性和行为

2、java只支持单继承,私有属性和构造方法不能被继承

3、继承可以传递,如A继承B,B继承C,则A也会有C的功能

4、如果一个类没有显示继承其他类,则该类继承Object

  java.lang.Objiect是java中的根类

是所以类对象都有的

作用:

提高了代码的效率,避免了代码的重写,提高代码重用性

语句:[ 修饰符]class 子类名 extends 父类名{}

二、Super

1、保存了父类型特征

2、在有继承关系的体系中,可以通过super表示父类的数据

作用:

1、在成员/构造方法中,区分父类和子类同名的数据(同名后,子类优先级高,想使用父类,就需要使用super.xxx才行)

2、在子类构造方法中,调用指定的父类构造方法

  语法 :super(参数);必须在子类构造方法第一行

如果在子类构造方法中,没有使用this(xxx)也没有使用super(xxx),则有super()去调用父类的无参构造,不能同时出现,因为都在构造方法第一行

3、this和 super不能出现在静态上下文

三、Override

override是方法重写/覆写/覆盖,覆写特指成员方法,其他的都不能覆写

应用场景:

1、当父类的功能满足不了子类需求

2、覆写条件

 有继承关系的体系

方法名必须一致,如果方法名不一致,就是两个方法

参数列表一致,不然就是方法重载

返回值必须一致

异常只能越来越少

不能有更低的访问权限

3、覆写的意义

功能更强 使用范围越广  错误越少

四、Final

是修饰符,表示最后的,最终的,不能更改

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

变量:没有默认值,不能二次赋值,必须显式赋值

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

final修饰的静态变量,被称为常量,public static finalxxx;常量名建议大写

五、多态

软件设计六大原则

单一职责原则:一个方法只做一个事,一个类只负责一个职责

里氏替换原则:能使用父类的地方,一定能使用子类(子类可以扩展,但不可以更改父类的功能,子类有自己特有的功能

依赖倒置原则:高层次不应该依赖低层次,应依赖抽象

接口隔离原则:类和接口之间应建立在最小接口上

迪米特原则:尽量减少依赖

开闭原则:

对修改关闭,对扩展开发

多态

是里氏替换原则的一种体现

  能使用父类的地方一定可以使用子类

    父类引用指向子类对象

父类引用:使用父类类型 创建的引用类型变量

指向:通过这个引用可以找到

父类类型 变量名 = new 子类();

Animal a = new Animal();

Animal a = new Cat(); 多态

三种用法

1、直接多态 :父类 变量 = new 子类();

2、形参/实参:参数列表用父类声明,调用方法 传递子类对象

public void m1 (Animal a){}

m1(new Cat());

返回值多态:返回值类型是父类类型,返回对象是子类对象

public Animal m2(){

return new Cat();

}

Animal a = m2();

优点:可扩展类强,低耦合

缺点:丢失子类特有属性

多态进行属性调用:

1、父类没有的,都调用不了

2、父类有点,子类没有的,执行父类

3、父类和子类都有,除了成员方法执行子类,其他全部执行父类(只有成员方法可以覆写)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值