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的调用

一般用于资源初始化,加载资源,加载配置文件等