JAVA_SE复习(OOP2)
面向对象编程(二)
一、static 关键字
静态属性
1、不能覆盖静态方法。要被覆盖的方法必须是非静态的。在继承链中具有相同方法名的两个静态方法是两个互相独立的类方法。调用子类的静态方法只是将父类的静态方法隐藏了。
2、main()方法被声明为static 的原因是因为执行main 方法时,JVM 只是加载了这个类,并没有创建类的实例。
另外,静态方法只能调用静态变量和方法,非静态方法只能调用非静态变量和方法。
自我总结:
1. 被static修饰的变量,是该类的公有变量 ,若要在类外使用,首先要满足可视性,其次用该(类名.属性)结构即可调用。
2. 被static修饰的方法,首先不能被覆盖,可以被继承 , 若在子类中,以覆盖的语法写了一个类似父类的方法,那么父类的中的方法将被隐藏,但是不会覆盖父类中的方法。
二、final关键字
当一个变量标记为final,那么这个变量只能被赋值一次,而且必须在声明时或在构造器中显式初始化后才能被使用。
自我总结:
1. 被final修饰的类,不能被继承
2. 被final修饰的方法,不能被覆盖(重载)
3. 被final修饰的变量,只能被赋值一次,并且必须在构造器或者定义变量时赋初值。
三、抽象类
自我总结:
1. 当一个类中一旦有一个抽象方法(没有抽象属性这一说法,但是抽象类中可以有属性)时,该类被称作 抽象类, 。
2. 父抽象类中的抽象方法必须要在非抽象类的子类中实现。
3. 一旦一个方法被定义为抽象方法,那么这个方法就不能有方法体。
四、接口
1.接口是一系列方法的集合(其中可以包含常量【也必须是public修饰】)
2.接口内的抽象方法 无论是否定义修饰权限,始终是public
3.接口不能实例化其自身
4.灵活运用多态,以及多态参数
五、接口和抽象类
1.首先接口是描述一个继承它的类拥有什么样的功能,而抽象类总的来说是一个类,它描述的是一类对象的大概特征。
2.接口只能包含抽象方法,而且它可以多继承其他的接口(只能是接口,不能继承类),而一个类只能单继承一个类。
3.抽象类不仅可以在类中定义抽象方法,而且可以拥有构造器(但是该类不能被实例化),可以拥有各种权限修饰关键字