抽象类与最终类
1. 抽象类
a> 抽象类不能被实例化, 即不能创建对象.
b> 抽象方法不能在非抽象类中.
c> 抽象方法不能有方法体.
public abstract void eat();
d> 抽象类中既可以由抽象方法, 也可以有普通方法.
public abstract class Animal0124 {
String name;
String age;
String food;
public abstract void eat();
public void play() {
System.out.println(this.name + " is playing.");
}
}
e> 非抽象类继承抽象类时, 抽象方法必须在重写.
public class Cat0124 extends Animal0124{
@Override
public void eat() {
System.out.println("Cat eat " + this.food);
}
}
f> 抽象类可以继承抽象类
public abstract class B0124 extends Animal0124{
}
g> abstract 关键字不能修饰成员变量.
2. 最终类
a> 最终类被 final 关键字修饰, 不能被继承
b> 被 final 关键字修饰的方法, 不能被重写.
c> 最终类中可以有被 final 修饰的方法, 也可以有普通方法.
public final class A0124 {
public final void ff1() {
System.out.println();
}
public void ff2() {
System.out.println("B");
}
}
d> 最终类可以被实例化, 即可以创建对象.
最终类 A0124 在上面 4 中.
public class Test0124 {
public static void main(String[] args) {
A0124 a = new A0124();
a.ff1();
a.ff2();
}
}
3. abstract 和 final 关键字注意事项
a> abstract 和 final 关键字不能同时修饰类和方法
b> 关键字 abstract 不能修饰实例变量,也不能与 private、static、final 等同时修饰一个成员方法,并且 abstract 修饰的成员方法必须在 abstract 类中