Day 10 面向对象三大特征 二

Day 10

1. 继承

1.1 继承的问题

子类可以通过继承获取父类非私有化成员,但父类的方法,不一定满足之类的情况。
这里不可能通过重新定义类似的方法名,完成子类特定的符合要求的方法。

1.2 方法的重写

重写之后,在没有增加方法的情况下,通过修改方法体,修改父类的方法,满足子类的方法实现。降低了开发压力,提高了效率

@Override
	严格格式检查
	要求重写方法和父类方法中的完全一致。

1.3 重写的问题

需求:
	强制要求子类重写父类的方法,从语法角度约束

1.4 abstract关键字

abstract修饰的方法
	要求子类强制重写
让eclipse帮助写代码

使用总结:
	1. abstract修饰的方法没有方法体
	2. abstract修饰的方法只能声明在abstract修饰的类中
	3. abstract修饰的方法在非abstract修饰的子类中必须实现
	4. abstract修饰的方法在abstract修饰的子类中可选择实现
	5. abstract修饰的类中允许存在普通方法
	6. abstract修饰的类不能创建自己的类对象
	7. abstract修饰的类中没有abstract方法是无意义的

2. final关键字

最终的
	final修饰的成员变量
		必须初始化,不能被修改
	final修饰的成员方法
		不能被重写
	final修饰的局部变量
		一旦赋值,不能被修改
	final修饰的类                                  
		不能被继承

3. static关键字

3.1 static修饰成员变量

特征
  1. 公共区域存放
  2. 共享性使用
  3. 和对象无关
  4. 一处修改,处处受影响

使用注意事项
	1. 定义在内存的数据区
	2. 不推荐使用类对象调用
	3. 推荐使用类名调用
	4. 代码中没有创建对象时,可以通过类名直接使用静态变量,和对象无关,对象销毁时也依然可以调用
	5. 修改该类某一对象的静态成员变量会影响所有该类的对象

3.2 static修饰成员方法

注意事项  
	推荐通过静态方式调用
  不能在静态成员方法中使用非静态成员
  不能在静态成员方法内使用this关键字
  可以在静态成员方法中使用类中其他静态成员
  可以在静态成员方法中new对象
	直接定义在内存的方法区

3.3 类变量和类方法

类变量 ==> 静态成员变量
类方法 ==> 静态成员方法
类成员 ==> 静态成员变量和方法

面试题
	类方法中是否可以使用成员变量

3.4 静态代码块

代码块
	构造代码块
		初始化当前类的所有类对象,【直接存在类内的代码块】
	静态代码块
		初始化程序,只要类文件加载,代码块中内容全部执行
	局部代码块
		提高效率,解放内存,让JVM回收内存的效率提升
		
静态代码块
	static {
		//静态代码块
	}
	只要and必须【类文件】加载,当前静态代码块中的内容一定执行,且只执行一次
发布了15 篇原创文章 · 获赞 12 · 访问量 1406

猜你喜欢

转载自blog.csdn.net/m0_37771142/article/details/104525580