面向对象
三大特征:继承、封装、多态
隐藏和覆盖:是指在子类对从父类继承的属性变量及方法,可以重新的定义
隐藏:指父类的静态方法与子类的静态方法一样的时候,通过子类对象调用该静态方法,则父类的静态方法背影藏不会执行。
覆盖(重写):子类重新定义父类的方法,方法名,参数必须一样(“运行期”绑定,看对象的类型来调用方法)
重载:在同一个类中,相同的方法名,不同的参数。“编译期(没对象)”绑定,看参数/引用的类型来绑定方法
内部类(有四种:成员内部类,):public class A{
class B{}
} 内部类可以用protect private,可以很好的隐藏。内部类可以访问外部类所有成员,反之则需要建立内部类对象
成员内部类:成员内部类访问外部的成员反法和属性,要使用“外部类名.this.方法名/属性”
创建内部类的实例用“外部类名.内部类名 实例名=外部类实例名.new 内部构造方法(参数)”
内部类不能使用static方法只可以使用static的静态常量。
静态内部类:与外部类同级,不能访问外部类的非静态成员。
匿名内部类:没有名称的内部类。必须继承一个类或者实现一个接口,如果是继承抽象类则匿名内部类必须实现其父类的全部抽象方法。
局部内部类:类在方法中。接口:是一种数据类型,由interface定义,方法抽象,数据为常量,访问权限默认public
枚举类型
变量修饰符:public:(公开,任何类 ) private:(本类) 默认:(本类、同包 ) protected:(本类、派生、同包)
final:(修饰变量不可变 修饰类不可以被继承 修饰方法不可以本重写) static final :(修饰的变量叫常量。编译器在编译时将常量替换为具体值,效率高。) 变量:
变量:
局部变量:只能在指定的方法里访问。
成员:
实例变量;属于对象
静态变量(类变量):static修饰,属于类,方法区,只有一份 ,常通过类名.变量 进行访问。
内存:
堆:new 对象(实例变量)
栈:局部变量(方法参数)
方法区:class字节码文件(方法,static变量)
成员方法可以访问类中所有成员。
构造器不能被继承,因此不能重写,但是可以被重载
行顺序:父类静态代码代码块>子类静态代码块>父类非静态代码块>父类构造>子类非>子类构造>
浙公网安备 33010602011771号