面对对象的编程Object-Oriented Programming (OOP)

本文深入探讨了Java中的类方法与实例方法的区别,接口的使用及特性,包括接口不包含构造器、默认方法等。同时,详细阐述了继承和重写的概念,如子类如何复用父类的构造器。此外,还介绍了Java中的多态性,包括重载和子类型多态性,以及里氏替换原则。最后,讨论了泛型在参数多态性中的应用。
摘要由CSDN通过智能技术生成

期末周快过去...

1. 基本概念

类方法 类成员变量:与一个类相关联,且每个类出现一次,使用它们不需要创建对象;

实例方法 实例成员变量:在类的每个实例中出现一次。

2. 接口

接口:确定ADT规约,更倾向于使用interface来定义变量。

例如: Set<String> names = new HashSet<>();

知识点:

1. 接口不包含构造器;继承子类中需要具体实现:静态检测可以发现;

2. 接口不包含具体实现;接口与子类可变或者不可变保持一致:静态检测不可以发现;

3. 接口不包含构造器,故不保证实现类中的构造器都叫同一个名字;

4. 且客户端需知道具体实现类的名字;

5. java8 后接口中可用静态工厂方法(用静态函数实现的构造器)实现构造器;

6. 可以通过default方法,在接口中统一实现某些功能,无需重复。

3. 继承和重写(Override)

(1)Overriding

严格继承:子类只能添加新方法,无法重写(final)

super():在子类中复用父类的具体实现,并进行扩展。

知识点:

1. 用父类声明的变量,即使被子类实例化,也引用不了子类独特的方法;(原因:在编译阶段确定方法能否被调用,只与类型有关)

2. 实际执行时调用哪个方法,运行时决定,看引用类型。

3. 如果是要复用父类的构造器,第一步先super();

(2)Abstract Class

用abstract:抽象方法:子类公有的操作,但彼此有差异,可在父类中设置抽象类;

知识点:

1. 有抽象方法一定是抽象类,但抽象类不一定有抽象方法;

2. 接口是仅有抽象方法的抽象类。

4. 三种多态性

特殊多态性

含义:对不同类型的值可能执行不同的代码。

重载(Overload):方法名相同,参数不同,其本质就是不同的方法。

知识点:

1. 重载是一种静态多态,发生在类内或者子类中;

2. 重载是在编译阶段决定具体执行的方法;

3. 对比:重写是在运行阶段决定具体执行的方法。

参数多态性

泛型:泛型接口,非泛型的实现类;泛型接口,泛型的实现类。

知识点

1. 可以有多个泛型:Map<E, F>;

2. 通配符?只在使用泛型的时候出现,不能在定义中出现;

3. 泛型无法创建通用数组。

子类型多态(包含多态)

LSP(里氏替换原则):如果S是T的一个子类型,那么T类型的对象可以被S类型的对象替换(即T类型的对象可以被替换为S子类型的任何对象),而不改变T的任何理想属性。

知识点:

1. 一个类只能直接继承一个父类,但可以实现多个接口;

2. 若B是A的一个子类型,意味着B的规约强于或等于A的规约,但如果B偷偷削弱了,编译器不能检查。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值