1.继承:子类可以继承到父类中的部分成员,那么此时就可以修改到父类的信息,继承破坏封装,可能让子类拥有不需要的方法
2.继承是为了代码复用。
方式一:代码通过继承代码复用
方式二:通过组合关系(类似于注入)
class CombinationDome
{
private ArrayUtil util= new Array()
}
3.字段不存在多态
package HelloWorld;
class SuperClass{
public String name="SuperClass.name";
public static void doWork() {
System.out.println("SuperClass.doWork");
}
}
class SubClass extends SuperClass{
public String name="SuperClass.name";
public static void doWork(){
System.out.println("SubClass.doWork");
}
}
public class AnimalSuperDome {
public static void main(String[] args) {
SuperClass clz= new SubClass();//多态
clz.doWork(); // SuperClass.doWork
System.out.println(clz.name);//SuperClass.name
}
}
子类与父类定义重名的变量,在内存中是使用不同区域存储,不存在覆盖概念。
4.代码块
在类中使用{}的代码片段就是代码块
代码块内定义的变量属于局部变量
(1)局部代码块:在方法内部的代码块
(2)初始化代码块(构造代码块):直接定义到类中
每次在创建对象都会调用构造器;调用代码构造器之前,首先执行本类中的初始化代码块
(3)静态代码块,只执行一次
-->静态成员随字节码的加载也加载进JVM,此时main还未执行,方法需要JVM的调用
一般用于资源初始化,加载资源,加载配置文件等