知识总结一

什么是方法重载和方法重写,有什么异同?

方法重载发生在同一个类中,同名不同参的方法;

方法重写是子类重写父类的方法,同名同参;

两者区别:语法区别,重载要求同名不同参,与访问修饰符 、返回类型、异常无关;

重写要求同名同参、访问修饰符必须大于等于父类,返回类型要一致(基本数据类型必须相同),子类 抛出的异常必须是父类异常的子类或子集!

抽象类和接口有什么异同?

语法上:抽象类有构造方法、属性、方法、可以包含零个或多个抽象方法;

接口则无构造方法,所有属性都是静态常量、所有方法都是抽象方法(JDK1.8可以有默认和静态方法);

设计理念上:抽象类代表的是子类是什么,是is-a的关系,接口代表的是子类能做什么,是一种约束和能力体现,是can-do的关系。

异常有哪三种类型,怎么自定义异常?

有运行时异常(runtime exception)、检查异常(checkedexceptions)、错误(error)

自定义异常:继承Exception 或者Exception 的子类,定义有参构造方法,在需要的地方throw异 常。

什么是多态?使用多态的两个前提条件?有哪两种表现形式和应用场合?

多态:一个事务在不同的条件下,产生不同的结果。

两个条件:要满足继承和重写。

表现形式:重载和重写。

应用场合:方法形参,方法返回值类型。

什么是内部类?内部类有哪几种?有什么优缺点?

定义在类内部的类,其他细节和普通类一致称为内部类;

内部类有四种:1.成员内部类 2.方法内部类 3.静态嵌套类 4.匿名内部类

优点:1.隐藏了具体实现和细节;2.减少了类文件的数量 3.避免传参,简化业务逻辑

缺点:使程序结构变得更复杂,不易维护;

什么是构造方法,有什么作用,如何调用本类和父类的构造方法?

1.方法名和类名一致,且无返回类型的方法称为构造方法;

2.构造方法用于对类的成员变量进行初始化;

3.通过“this()”方法调用本类的构造方法,通过"super()"方法调用父类的构造方法;必须写在第一 行;

final、finally、finalize有什么异同?

final用于声明属性,方法和类,分别表示属性不可变,方法不可重写,类不可继承;

finally是异常处理结构的一部分,表示总是执行,除了System.exit(0)

finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的该方法。

类和类之间有哪几种关系?面向对象设计原则有哪些?

类与类之间有:继承,实现,依赖,关联,聚合,组合关系;

设计原则:

1.依赖倒置原则 DIP (Dependence Inversion Principle)

概念: A.高层模块不应该依赖与底层模块,两个都应该依赖抽象;

B.抽象不应该依赖细节,细节应该依赖抽象。

2.迪米特法则 LOD(Law of Demeter)

概念: 如果两个类不必彼此直接通信,那么两个类就不应当发生直接的相互作用。

3.接口隔离原则 ISP(Interface Segregation Principle )

概念: 使用多个专门的接口,而不要使用单一的总接口,即客户端不应该依赖那些它不需要的 接口。

4.聚合/组合原则 CARP (Composite/Aggregation Reuse Principle)

概念: 尽量使用聚合/组合,尽量不使用继承。

5.里氏替换原则 LSP (Liskov Substitution Principle)

概念: 子类型必须能够替换他们的父类型。

6.开闭原则 OCP ( Open Closed Principle)

概念: 软件实体应该可以扩展,但不可修改。

7.单一职能原则 SRP(Single Responsibility Principle)

概念:就一个类而言,应该仅有一个引起它变化的原因;

设计模式分哪几类?共有多少种?

分三大类,创建模式(五种):负责对象创建;结构模式(七种):处理类与对象之间的组合;

行为模式(十一种):类与对象交互中的职责分配;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

楠枫记录

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值