final 最终的 修饰符 相当于汉文中的形容词
类:最终类 “骡子”类
不能有子类 但是可以有父类
String类和Math类为什么都是用final进行修饰?
String类很基础 很核心 越是基础的东西越应该保持统一
Math类里面定义的都是一些公理 定理 不能随意的改变
方法:最终方法 -》 最终版本的方法
不能被覆盖 可以正常的被继承
sun公司不在乎有多少的类通过继承得到最终方法
但是需要保证的是 这个方法一定是最终的版本 不能再改变
变量:最终变量 常量
一旦赋值 不能在改变值
当final修饰的是基本数据类型的时候 -》 保护值不能改变
当final修饰的是引用数据类型的时候 -》 保护地址不能改变
final double π = 3.14;
abstract 抽象的 修饰符 相当于汉文中的形容词
类:抽象类 不形象 不具体 不能创建对象
main():
Animal aa = new Animal();//报错
abstract class Animal{}
面试题:
抽象类是类吗? abstract class
是
抽象类有构造方法吗?
有
java中只要是个类 有一定有构造方法
抽象类有构造方法 可是又不能创建对象
那么要构造方法干嘛?
用来给子类的super()调用的
方法:抽象方法 不能有{} 直接();
表示本类型一定会这个方法 但是现在给不出
具体的实现 待留给子类去实现
*:抽象类里面可以定义普通方法 也可以定义抽象方法
*:一个类里面只要出现的抽象方法 那么这个类就一定需要定义成抽象类
java中的接口 interface 相当于工业生产中的规范
java中的第二大类型 -> 编译之后都会生成.class文件
class interface enum @interface
类 接口 枚举 注解
定义一个接口:
interface USB{
//属性
//接口里面定义的属性默认加上三个修饰符:
//public static final
int v = 5;
//方法
//在接口里面定义的方法默认加上两个修饰符:
//public abstarct
void connect();
}
找到一个遵循这个规范的类型
找到一个使用这个规范的类型
*:当我们拿着一个类型去实现(implements)一个接口的时候
需要给出这个接口里面所有抽象方法的具体实现
*:类和类之间 -》 extends
类和接口之间 -》 implements
接口和接口之间 -》 extends
一个类只能继承一个类 -》 单根继承
一个类可以实现多个接口
class A{}
interface B{}
interface C{}
class B extends A implements B,C{}
*:在类和类之间的方法覆盖的时候 5.0开始可以加@Override
在接口和类之间的方法覆盖的时候 6.0开始可以加@Override
*:接口不能创建对象
面试题:
抽象类和接口之间的区别?
1:这是java里面的量大类型:class interface
2: 抽象类里面可以定义抽象方法 也可以定义普通方法
接口里面只能定义抽象方法
Object : 面向对象的思想
clone():克隆一个对象的方法
finalize():"遗言"方法
当gc回收一个对象的时候 会主动的调用这个对象
的finalize方法
gc -> 刽子手
==============================================
toString():制定一个对象打印显示的内容
当我们想打印一个引用类型的对象的时候
想看得懂 -》 toString()
equals():制定一个类型比较的规则
hashCode():
static 静态的
属性:静态属性
特点:整个类型共享一份 需要拿着类名去调用
方法:静态方法
特点:需要拿着类名去调用
静态方法里面只能直接的访问静态的成员
如果想要拍访问非晶态成员 需要先创建
代码块:静态代码块
特点:当类第一次被加载的执行 而且只执行一次
面试题:
static为什么不能修饰局部变量?
static修饰的变量要求类第一次被加载的时候有已经被创建
但是局部变量只有所在的方法被调用的时候才能被创建
这两个时间点赶不上一起 所以static不能修饰局部变量
final 最终的
类:最终类
特点:不能有子类 但是可以有父类
方法:最终方法
特点:不能被覆盖 但是可以被继承得到
变量:最终变量 常量
特点:一旦赋值 就不能再改变值
abstarct:抽象的
类:抽象类
特点:不能创建对象
方法:抽象方法
特点:不能有方法体 直接();
类:最终类 “骡子”类
不能有子类 但是可以有父类
String类和Math类为什么都是用final进行修饰?
String类很基础 很核心 越是基础的东西越应该保持统一
Math类里面定义的都是一些公理 定理 不能随意的改变
方法:最终方法 -》 最终版本的方法
不能被覆盖 可以正常的被继承
sun公司不在乎有多少的类通过继承得到最终方法
但是需要保证的是 这个方法一定是最终的版本 不能再改变
变量:最终变量 常量
一旦赋值 不能在改变值
当final修饰的是基本数据类型的时候 -》 保护值不能改变
当final修饰的是引用数据类型的时候 -》 保护地址不能改变
final double π = 3.14;
abstract 抽象的 修饰符 相当于汉文中的形容词
类:抽象类 不形象 不具体 不能创建对象
main():
Animal aa = new Animal();//报错
abstract class Animal{}
面试题:
抽象类是类吗? abstract class
是
抽象类有构造方法吗?
有
java中只要是个类 有一定有构造方法
抽象类有构造方法 可是又不能创建对象
那么要构造方法干嘛?
用来给子类的super()调用的
方法:抽象方法 不能有{} 直接();
表示本类型一定会这个方法 但是现在给不出
具体的实现 待留给子类去实现
*:抽象类里面可以定义普通方法 也可以定义抽象方法
*:一个类里面只要出现的抽象方法 那么这个类就一定需要定义成抽象类
java中的接口 interface 相当于工业生产中的规范
java中的第二大类型 -> 编译之后都会生成.class文件
class interface enum @interface
类 接口 枚举 注解
定义一个接口:
interface USB{
//属性
//接口里面定义的属性默认加上三个修饰符:
//public static final
int v = 5;
//方法
//在接口里面定义的方法默认加上两个修饰符:
//public abstarct
void connect();
}
找到一个遵循这个规范的类型
找到一个使用这个规范的类型
*:当我们拿着一个类型去实现(implements)一个接口的时候
需要给出这个接口里面所有抽象方法的具体实现
*:类和类之间 -》 extends
类和接口之间 -》 implements
接口和接口之间 -》 extends
一个类只能继承一个类 -》 单根继承
一个类可以实现多个接口
class A{}
interface B{}
interface C{}
class B extends A implements B,C{}
*:在类和类之间的方法覆盖的时候 5.0开始可以加@Override
在接口和类之间的方法覆盖的时候 6.0开始可以加@Override
*:接口不能创建对象
面试题:
抽象类和接口之间的区别?
1:这是java里面的量大类型:class interface
2: 抽象类里面可以定义抽象方法 也可以定义普通方法
接口里面只能定义抽象方法
Object : 面向对象的思想
clone():克隆一个对象的方法
finalize():"遗言"方法
当gc回收一个对象的时候 会主动的调用这个对象
的finalize方法
gc -> 刽子手
==============================================
toString():制定一个对象打印显示的内容
当我们想打印一个引用类型的对象的时候
想看得懂 -》 toString()
equals():制定一个类型比较的规则
hashCode():
static 静态的
属性:静态属性
特点:整个类型共享一份 需要拿着类名去调用
方法:静态方法
特点:需要拿着类名去调用
静态方法里面只能直接的访问静态的成员
如果想要拍访问非晶态成员 需要先创建
代码块:静态代码块
特点:当类第一次被加载的执行 而且只执行一次
面试题:
static为什么不能修饰局部变量?
static修饰的变量要求类第一次被加载的时候有已经被创建
但是局部变量只有所在的方法被调用的时候才能被创建
这两个时间点赶不上一起 所以static不能修饰局部变量
final 最终的
类:最终类
特点:不能有子类 但是可以有父类
方法:最终方法
特点:不能被覆盖 但是可以被继承得到
变量:最终变量 常量
特点:一旦赋值 就不能再改变值
abstarct:抽象的
类:抽象类
特点:不能创建对象
方法:抽象方法
特点:不能有方法体 直接();