2020.04.01软件构造听课笔记

静态方法无法直接调用非静态成员

Interface和Class:实现和定义ADT
接口中只有方法的定义,没有实现
接口之间可以继承与扩展
一个类可以实现多个接口(从而具备了多个接口中的方法)
一个接口可以有多种实现类

接口:确定ADT规约
类:实现ADT
也可以不需要接口直接使用类作为ADT,既有ADT定义也有ADT实现
实际中更倾向于使用接口来定义变量

打破了抽象边界,接口定义中没有包含constructor,也无法保证所有实现类中都包含了同样名字的constructor
故而,客户端需要知道改接口的某个具体实现类的名字

提高信息隐藏的方法:
使用接口声明变量
客户端仅使用接口中定义的方法
客户端代码无法直接访问属性

作用域:
public:当前类,同一包,子孙类(不同包),其他包
protected:当前类,同一包,子孙类(不同包)
default:当前类,同一包
private:当前类

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

重写的函数:完全相同的signature(签名)

重写的时候不要改变原方法的本意

@override(编译器会检查覆盖方法和被覆盖方法签名是否完全一致)

只有定义没有实现,我们成为抽象方法

抽象类:里面至少有一个抽象方法

抽象类不能实例化(不能用new生成对象)
继承某个抽象类的子类在实例化时,所有父类中的抽象方法必须已经实现

重载:多个方法具有同样的名字,但有不同的参数列表或返回值类型
价值:方便client调用,client可用不同的参数列表,调用同样的函数

重载是在编译阶段进行检查的

可以在同一个类内重载,也可以在子类中进行重载

重载的要求:
不同的参数列表
相同/不同的返回值类型
相同/不同的public/private/protected
异常

类中只有有一个泛型变量,那这个类就是泛型类

子类型的规约不能弱化超类型的规约

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值