Java学习笔记(十六)
final关键字
1.final可以用来修饰类,方法,变量;、
2.final修饰一个类时,此类不能被其他类所继承;
3.final修饰方法时,表示此方法不可被重写;
4.final修饰变量时,此时的变量称为一个常量,可以考虑赋值的位置有:显式初始化,代码块中初始化,构造器中初始化。
abstract
1.可以用来修饰 类,方法;
2.abstract修饰类:抽象类
》此类不能实例化;
》抽象类中一定有构造器,便于子类实例化使用。
3.abstract修饰方法:抽象方法
》只有方法的声明,没有方法体
》包含抽象方法的类,一定是一个抽象类,抽象类不一定包含抽象方法
》若子类重写了直接或者间接父类中的所有抽象方法,此子类可实例化,若没有重写,则子 类也得为一个抽象类
下面举个例子:
public class AbstractTest {
public static void main(String[] args) {
}
}
abstract class Creature {
abstract public void walk();
}
abstract class Person extends Creature{
String name;
abstract public void eat();
}
class Student extends Person {
String id;
public void eat() {
System.out.println("chifang");
}
public void walk() {
System.out.println("zoulu");
}
}
4.abstract使用上的注意点:
》abstract不能用来修饰:属性,构造器等结构
》abstract不能用来修饰私有方法,静态结构(不能被重写),final的方法(不能被重写)
5.匿名子类
Person p = new Person(){
public void eat(){
System.out.println("chifan");
}
public void walk(){
System.out.println("zoulu");
}
}
其中Person为抽象类,eat,walk方法为Person中的抽象方法;