抽象类和静态属性以及静态方法(2019年10月17日)

何为抽象类:自己定义方法,但是自己不是实现方法,让后代去实现(自己的事情不做,留给后代去做)

访问修饰符: 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.执行构造方法里面的逻辑

 

posted @ 2019-10-17 18:54  小星星i  阅读(540)  评论(0编辑  收藏  举报