Days 12 面向对象

1.Final

1.1 是什么 修饰符 表示最终的,不可更改的

1.2 能做什么

 final 修饰的类不能被继承 

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

finla 修饰的变量,不能二次赋值,没有默认值,必须显示赋值

 一般我们把final修饰的静态变量叫做常量 

也就是public static final 数据类型 变量名 = 值;

1.3 怎么用

 

 

2.多态

2.1 是什么:

父类引用指向子类对象

父类引用 : 指的是 用父类型声明的引用类型变量

指向 : 通过内存地址可以找到哪个对象

子类对象 : new 子类 创建的堆内存对象

子类 变量 = new 子类();

Cat c = new Cat();

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

Animal a = new Cat();

  2.2 补充  :

软件设计六大原则 :

1 单一职责原则 : 功能单一,只拥抱一种变化

2 里氏替换原则 : 能使用父类的情况下,一定可以使用子类

因为继承,父类有的功能,子类都有

3 依赖倒置原则 : 细节应该依赖抽象,而抽象不应该依赖细节

4 接口隔离原则 : 先不管

5 迪米特法则 : 最少知识原则,和其他类或对象,尽可能有更少的了解

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

2.3 优点 :

统一操作,作用于不同对象,可以有不同的解释,产生不同的结果,这就是多态性

当一件事会有多种不同的实现方式的时候,我们选择依赖高层 来拥抱多种变化

本质还是较低类和细节之间的耦合度

2.4 缺点: 丢失子类特有的属性

2.5 使用语法

类型转化异常

2.6 多态的几种形式

父类引用指向子类对象

 

3 抽象 abstract

3.1 是什么  修饰符,修饰的类是抽象类 修饰的方法是抽象方法

抽象类,不能实列化对象

抽象方法,没有方法体 之定义功能  没有功能的实现,并且抽象方法必须在抽象类中

反之,抽象类中,可以没有抽象方法

4.Interfa

4.1 是什么:

接口: 可以理解为完全抽象的一个类,里面只有抽象方法和常量

但是从1.8 开始 允许出现 静态方法和默认方法

 语法 修饰符  interface 接口名

 接口中的抽象方法 不需要加abstract 修饰,方法默认 都是 public abstract

接口中 没有变量 只有常量, 并且public static final 可以省略

类和几口之间 ,不再是继承关系,变成了实现关系,有extends 变成了implements

接口名 变量 = new 子实现类() 也是会发生多态的

一个类只能继承一个类,但是.可以实现N个接口,以逗号隔开,可以解决当年继承功能变弱问题

class 类名 implements 接口1 , 接口2,接口3....{}

接口和接口之间,是多继承, 多个 已逗号隔开

interface 接口名 extends 父接口名1,父接口名2,...{}

 一个类 如果实现了一个接口,那么必须实现接口中所有的抽象方法,.否则该类需要加abstract修饰

一个抽象类,实现一个接口,可以实现 0~N个抽象方法

 1.7 只能有抽象方法

 1.8 可以有静态方法,也可以有default方法(就理解为成员方法即可)

静态方法,用接口名调用即可

default 方法需要同过子实现类调用,同时也可以覆写

  1.9 开始 支持 private方法

4.2 使用方式

 

 

5 Object

5.1 概述

 

5.2Equals

 

 

 

 

5.3 Finalize

 

 

 5.4 toString

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值