1.static 静态方法,也成为了类方法。
非静态方法称为实例方法。
需求:希望在不创建对象的情况下就可以调用某个方法,及方法与对象不绑定在一起。
例1:阅读一下程序,输出结果是什么?
class Person {
public static void sayHello() { // 定义静态方法
System.out.println("hello");
}
}
class Example13 {
public static void main(String[] args) {
Person.sayHello(); // 调用静态方法
}
}
访问方法:
- 对象名.成员方法名
- 类名.成员方法名
注意:类的静态变量相当于某些程序语言的全局变量。
静态方法只能使用静态变量,不能使用实例变量。
2.final最终方法
特点:这个类的子类不能重写该方法。这种修饰可以保护一些重要的方法不被修改,尤其是那些对类的状态和行为有关键性作用的方法被保护以后,可以避免未知情况的发生。
例2:阅读下面程序,输出结果是什么?
// 定义Animal类
class Animal {
// 使用final关键字修饰shout()方法
public final void shout() {
// 程序代码
}
}
// 定义Dog类继承Animal类
class Dog extends Animal {
// 重写Animal类的shout()方法
public void shout() {
// 程序代码
}
}
// 定义测试类
class Example07 {
public static void main(String[] args) {
Dog dog=new Dog(); // 创建Dog类的实例对象
}
}
3.abstract抽象方法
一个抽象类可以含有抽象方法。所谓抽象方法是指不能实现的方法,因为它没有方法体,所以抽象方法只能出现在抽象类中。
为什么要使用抽象类和抽象方法呢?一个抽象类可以定义一个统一的编程接口,使其子类表现出共同的状态和行为,但各自的细节是不同的。子类共有的行为由抽象类中的抽象方法来约束,而子类行为的具体细节则通过抽象方法的覆盖来实现。这种机制可增加编程的灵活性,也是OOP继承树的衍生基础。