何为抽象类:自己定义方法,但是自己不是实现方法,让后代去实现(自己的事情不做,留给后代去做)
访问修饰符: public protected default private
一个类被abstract修饰代表这个类是抽象类,被abstract修饰的方法叫做抽象方法
public abstract class Person{ public abstract void doSonmthing(); //doSomething这个方法就是为了让他的子类去实现的,不用写{} }
有抽象方法一定有抽象类(有0到n个),同样的抽象类中也可以有普通方法
抽象类不能被实例化(不能够new一个抽象对象)
如果用一个类去继承抽象类,要编译正确的话: 1.将子类也定义为抽象类 2.在子类中重写父类的抽象方法
java中内存分为:1.栈 2.堆 3.方法区 4.程序计数器 5.本地方法栈
**3.方法区:会存放xxxx包下的xxxx类
**5.本地方法栈:native关键字的方法java无法自己实现,只能操作系统来写
java文件编译成为字节码文件,然后在jvm中加载
static:静态的(修饰方法和属性)
静态的是表示属于整个类所有的,有且仅有一份,说有对象共用一份(例如生活中的太阳一样)
静态的属性和方法都保存在方法区内存中,也叫静态区
静态的方法和属性都在类加载的时候完成(先与对象的创建,说以静态方法中不能含有非静态的属性或者方法)
静态的不能调用非静态的
构造方法会经历那些步骤:
1.去方法区中寻找这个类是否已经被加载了,如果没有被加载则先加载这个类(静态的东西会在第一次类加载的时候完成初始化)
2. 然后new在堆中申请空间,然后个这个对象初始化
3.执行构造方法里面的逻辑