Java-- 懒汉式--Final关键字--Abstract抽象方法--接口

懒汉式 VS 饿汉式比较

1. 二者最主要的区别在于创建对象的时机不同:饿汉式是在类加载就创建了对象实例,而饿汉式是在使用时才创建的。

2. 饿汉式不存在线程安全问题,懒汉式存在线程安全问题

3. 饿汉式存在浪费资源的可能。因为如果程序员一个对象实例都没有使用,那么懒汉式创建的对象就浪费了,懒汉式是使用时才创建,就不存在这个问题。


Final关键字:

1. 当不希望类被继承时,可以用final修饰。

2. 当不希望父类的某个方法被子类覆盖时,可以用final关键字修饰。

3. 当不希望类的某个属性的值被修改,可以用final修饰。

4. 当不希望某个局部变量被修改,可以使用final修饰。

细节:

1. final 修饰属性又叫常量,一般用XX_XX_XX命名

2. final修饰属性定义时,必须赋储值,并且以后不能修改,赋值可以在定义时,在构造器中,在代码块中

3. 如果final修饰属性是静态的,则初始化的位置只能是在定义时,在静态代码块不能在构造器中赋值

4. final类不能继承,但是可以实例化对象

5. 类不是final类,含有final方法,则该方法不能重写,但是可以继承

6. final不能修饰构造方法

7. final一般跟static搭配使用,效率更高,不会导致类加载.底层编译器做了优化处理。


Abstract抽象方法:

介绍:

1. 关键字修饰一个类,这个类就叫抽象类 访问修饰符 abstract 类名{}

2. 用abstract 关键字修饰一个方法时,这个方法就是抽象方法 访问修饰符: abstract 返回类型 方法名 

3. 抽象类的价值更多作用是在于设计,是设计者设计好后,让子类继承并实现抽象类()。


细节:

1.抽象类不能被实例化

2. 抽象类不一定要包含abstract方法。

3. 一个类包含了abstract方法,则这个类必须声明abstract

4. abstract只能修饰类和方法,不能修饰属性和方法

5. 抽象类本质还是类

6. 抽象方法不能使用private,final,static来修饰,与重写相违背。

7. 一个类继承了抽象类,则它必须实现抽象类的所有抽象方法,除非它自己也声明为abstract类。

接口:

介绍:接口就是一些没有实现的方法,封装到一起,到某个类要使用的时候,在根据具体情况把这些方法写出来。

语法:

interface 接口名{

// 属性

// 方法   1. 抽象方法  2. 默认实现方法   3. 静态方法

}

class 类名 implements 接口{

自己属性;

自己方法;

必须实现的接口的抽象方法

}

细节:

1. 接口不能被实例化

2. 接口中所有的方法是public方法,接口中抽象方法,可以不用abstract修饰

3. 一个普通类实现接口,就必须将该接口的所有方法都实现

4. 抽象类实现接口,可以不用实现接口的方法

5. 一个类同时可以实现多个接口

6. 接口中的属性只能是final的 ,而且是public  static final 修饰符

7. 接口中属性的访问形式:接口名.属性名

8. 接口中不能继承其他类,但是可以继承多个别的接口

9. 接口的修饰符 只能是 public和默认 ,这点和类的修饰符是一样的

你可能感兴趣的:(Java,java,开发语言,Final关键字,Abstract抽象方法,接口)