复习

构造方法

什么是构造方法
就是类在实例化的时候,运行的构造方法

为什么有构造方法?

  • 构造方法运行时,实例化过程中系统类部必备的步骤
  • 增加了代码简洁性。

重写

必须一样的: 方法名,参数列表以及类型,只要你的方法签名和父类的一样,就必须满足重写,不然报错,包装类作为返回值也必须一样
可以不同的: 如果父类的返回值是引用类型,子类的返回值可以是父类返回值类型的子类,2 访问修饰符权限,必须大于或者等于父类的权限。**异常:**相同或者子类方法抛出的异常时,父类抛出异常的子类。

重写和重载的区别

重载 同类,方法名相同,参数不同,返回值无关,修饰符无关 编译期绑定
重写 父子类 相同 相同 基本类型要一样,引用类型可以是子类,修饰符权限要大于或者等于运行期绑定

多态

(1)对象多态,方法多态
(2)为什么向上造型后,可以调用子类的重写方法,却不能调用子类的属性。
因为属性并没有重复,只是重名而已。

静态

(1)静态属性不需要实例化,直接类名调用即可。
(2)多个对象共享同一个数据,节省内存。
(3) 静态方法中不能调用非静态变量,以及方法--------因为静态方法以及属性,都是在类第一次加载的时候创建,而那时候,还没有对象。
初始化块
(1)如果没有继承父类构造方法,会第一时间运行,否则会先运行父类构造方法,普通初始化块,创建一个对象,就会有一个
(2)静态初始化块,会在第一时间运行,而且只有一份
2.1 本质上是jvm运行时加载这个类时,触发代码块的,当你调用静态属性或者方法是,jvm就会去加载那个类那么他的静态块和构造方法会被触发。
2.2 – 静态初始化块程序运行接收之前只会运行一次。 加载和运行不一样
------使用时机
程序中只需要加载一次的资源时

常量

1)如何定义常量 -----public static final 《类型》 《名称》《值》
2)static 带来的效果 -------常量可以直接使用类名调用
3) final 带来的效果----常量值不可以随意修改
4) static+final 修饰常量的效果 --------调用常量的位置,会在编译时就替换成常量的值 ,所以不会去加载类,就不会去运行那个类的静态块,节省资源和内存,提高运行效率
5)命名规范---------单词全部大写,单词之间用下划线连接

抽象类

为什么要有抽象类,好处是什么
0) 抽象类相当于一个模板,可以把多个子类要使用的方法,写在抽象类里面,但不确定子类具体怎么实现的方法,写成抽象方法,使代码更加灵活
1) 在程序实际运行中,不存在对象的类就是抽象类,不存在具体类型的父类。 例子,水果怎么吃,但是可以分为各种类型,宠物,,猫。
2)在class前 编写abstract 。
2.1抽象类中能编写抽象方法。
3)抽象类的意义
3.1 要求子类中必须重写父类抽象方法,除非子类也是抽象类

抽象方法

1)什么是抽象方法
1.1 再抽象类中,由于对象的不确定性,暂时无法具体实现方法
2)编写抽象方法
2.1 在方法的返回值类型前编写abstract
2.2抽象方法没有方法体
final 和abstract 不能同时修饰方法;

内部类
我们将内部定义inner
将外部定义为outer
成员内部类
1) 在类的成员位置,定义的内部类,在使用时,类中将其看做一个成员
2)outer的私有变量,inner也可以使用,反过来也一样
3) 一般情况下inner的对象只会在outer中使用
3.1)如果inner中的属性与outer中重名this.<属性名> 使用外部类的属性 类名.this.变量名。
3.2)任何内部类都会有自己独立的class文件,实际上inner可以在其他类中实例化
3.3)在外部类中访问内部类的成员,必须要创建内部类的对象,来调用
3.4)在外部类创建一个方法,返回成员内部类的对象,可以借此来创建内部类对象。
匿名内部类
1 匿名内部类是一种特殊的内部类。
:1.1)匿名内部类没有特定的类名。
1.2)匿名内部类一般写在方法中。
1.3)匿名内部类必须选择一个类或接口继承
2)匿名内部类中只能对方法中的局部变量访问,不能修改。一旦内部类使用了外部类局部变量,外部类就不能修改。
2.1)jdk1.6之前类名内部类使用外部类的时候,外部类局部变量必须加final
2.2)如果匿名内部类里面,自己写一个方法,是不能调用的,但是可以在重写的方法里调用
使用场景
如果需要某个类型的子类对象,但只需要在某个方法中调用一次。

接口

什么是接口
1)接口也是java程序中的一种数据类型,可以将接口看做是一个特殊的抽象类。
1.1)interface关键字替换关键字class关键字。
1.2)接口不能实例化。
1.3)接口中所有属性均为公有静态常量。
1.4)接口中的所有方法均为公有抽象方法。
1.5)接口没有构造
使用接口
2.1)类实现接口的格式。class<类名>implements<接口名>{}
2.2)实现类必须重写接口中的所有抽象方法,除非实现类也是抽象类。
2.3)接口也可以当做子类向上造型的类型。
3 )为什么要使用接口
3.1) 接口可以实现多继承,一个java可以实现多个接口。
3.2)接口可以提高程序的扩展性。
3.3)使用接口可以更灵活的管理不同类型的实现类对象。
3.4)接口可以继承接口,而且是多继承
4)接口使用的注意事项
4.1)在最新版本的jdk中允许在接口的编写默认实现。
4.2)接口中允许编写静态方法,但不常用。
4.3)面向接口编程,将程序中的很多功能提取到接口中,具体的实现类对这个接口进行实现。可以把接口理解成一种能力。
4.4)实现类和接口应该符合has --a 关系
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值