java基础-面向对象
构造函数:给对象初始化,对象一建立就执行,只执行一次
一般函数:被调用才执行,可执行多次
静态代码块:对类进行初始化: static{代码}
构造代码块:不同对象的共性的初始化内容,先于构造函数执行:{ 代码}
this:哪个对象在调用this所在的函数,this就代表哪个对象;
Person p=new Person(“zhangsan”,20);
初始化过程:
1、因为new用到了Person.class,所以会先找到Person.calss文件并加载到内存中
2、执行该类中的static静态代码块,用于对类进行初始化
3、在堆内存中开辟空间,分配内存地址
4、在堆内存中建立对象的特有属性,并进行默认初始化
5、对属性进行显性初始化
6、构造代码块初始化(对所有对象初始化)
7、对对象进行对应的构造函数初始化
8、将内存地址赋值给栈内存的p变量
抽象类特点:
1、抽象方法一定在抽象类中
2、抽象方法和抽象类都必须被abstract关键字修饰
3、抽象类不可以用new创建对象,因为调用抽象方法没意义
4、抽象类中的抽象方法要被使用,必须由子类复写所有的抽象方法后,建立子类对象引用
如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类
抽象类比一般类多了个抽象函数,就是在类中可以定义抽象方法,抽象类不可以实例化
特殊:抽象类中可以不定义抽象方法,这样做仅仅是不让该类建立对象
接口
一个特殊的抽象类 ,当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示。
interface定义接口
类继承类,单继承,可以继承一个类的同时实现多个接口;
类实现接口,可以继承多个接口,因接口没有方法体
接口继承接口,可以多继承;
接口可以扩展功能,由后期子类实现;
基本功能定义在类中;扩展功能定义在接口中;