ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-07-06 19:30:27  阅读:159  来源: 互联网

标签:构造方法 继承 覆写 多态 Day12 子类 父类


面向对象

Extend

是什么:

        1.继承是从已有类中派生出新的类,心得类拥有父类的属性和行为,并且华能扩展心得属性和行

        为

        2.Java中只支持继承,不支持多继承,这样可以让java钟大哥继承关系比较简单

        一个类只能有一个父类,但是一个父类呢可以有很多子类,易于维护和管理

        为了解决单继承功能变弱问题,java提出了接口,一个类可以实现多个接口

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

        4.私有属性和构造方法是不能被继承

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

                java.lang.Object是java题工的根类(祖宗)

                Object中的功能,是所有类对象都有的

能做什么

解决的问题:提高了代码效率,避免了代码的重写,提高代码的重用性

覆写,多态

怎么用

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

super

是什么

1.官方说法是保存了父类型特征

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

能做什么

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

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

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

        如果子类构造方法中没有使用this(xxx),也没有使用super()去调用父类的无参构造

        this(xxx)和super(xxx)都必须出现在构造方法第一行,也就意味着他们两个不能同时出现

3.this和super都不能出现在静态上下文中

怎么用

1.区分父子类同名属性

2.调用父类指定的构造方法

Override

是什么

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

应用场景

1.什么时候需要对父类方法进行覆写:当父类功能满足不了子类需求的时候

2.覆写条件

        <1>有继承关系的体系中

        <2>方法名必须一致,如果方法名不一致就是两个方法了

        <3>参数列表必须一致,如果参数列表不一致,这是方法重载,也是两个方法

        <4>返回值必须一致

        <5>不能又更宽泛的异常(异常只能越来越少)

        <6>不能有耕地的访问权限

3.覆写的意义:功能越来越强,适用范围越来越广,错误越来越少

Final

是什么

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

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

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

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

final修饰的静态变量,一般城位常量,public static final xxxx;常量名建议全部大写

怎么用

深入final,final修饰的引用类型

多态

单一职责原则

原则思想:一个方法只做一件事,一个类只负责一个职责,这样当前职责改动,不会对其他程序产生影响

尝试原则:几乎所有的程序员都会遵循这个原则

                优点:降低类与类之间的耦合度,提高可读性,可维护性,可扩展性,降低可变性的风险

里氏替换原则

原则思想:能使用父类的地方,就一定可以使用子类

子类还可以扩展父类的功能,但是不能更改父类的功能,并且子类还可以有自己特有的功能

优点:增加了陈旭的健壮性,即使有了新的子类,原子类不受影响,可以正常执行

依赖倒置原则

原则思想:高层次不应该依赖低层次,都应该依赖与抽象

优点:拥抱多种变化,可以减少需求变化带来的工作量

接口隔离原则

原则思想:类与接口之间应该建立在最小接口上

迪米特法则

原则思想:又称为最少的只是原则,一个对象尽可能的少了解其他对象

一个类中间量减少对其他类的依赖

开闭原则

原则思想:对修改关闭,对扩展开放

尽量通过扩展软件实体来解决需求的变化,而不是通过修改已有的代码来完成变化

是什么

多态就是里氏替换法则的一种体现(能使用父类的地方一定可以使用子类)

多态就是父类引用子类对象

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

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

        通过父类创建的一个引用变量,找到了子类的对象

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

        Animal a = new Animal();

        Animal a = new Cat();多态

怎么用

多态的几种形式:

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

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

        public void m1(Animal a){}

        m1(new Cat());

3.返回值多态:返回值类型是父类类型,但是返回的对象是子类对象

 

优点

调用

标签:构造方法,继承,覆写,多态,Day12,子类,父类
来源: https://blog.csdn.net/fighting_cui/article/details/118516976

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有