一. abstract关键字
解释为抽象的,可以修饰:类,方法
1.1 abstract修饰类(抽象类)
一个被abstract修饰符修饰的类就是一个抽象类。
public abstract class A{ }
有抽象方法的类,必须是一个抽象类。
我们认为抽象类是一个没有完成的类。就不可以被实例化。
抽象类一定要被继承。
1.2 abstract修饰方法(抽象方法)
1 使用abstract修饰
2 没有方法体,只有原型。
public abstract void print(int i);
我们认为抽象方法是一个没有写完的方法。就不可以执行。
抽象方法一定需要被重写。
1.3 抽象类和抽象方法的使用方法
抽象类要继承。
抽象方法要重写。
public abstract class A {
public void print(){
}
public static void dis(){
}
public abstract void info();
}
public class B extends A{
@Override
public void info() {
}
}
1.4 abstract 使用场景
通常在继承中修饰父类
因为很多父类本是具体的实例。
图形父类就是一个抽象身就是一个抽象的概念。
三角形,矩形,圆形都的概念。
父类 引用 = new 子类();
这个引用可以调用的方法是:
1 父类的方法
2 子类重写方法
都是在父类中声明的。
二.拓展()匿名内部类
匿名:就是没有名。
匿名内部类就是一个没有名字的内部类。
匿名内部类一般配合:
1 抽象类
2 接口
3 普通类
抽象类的使用
public abstract class D {
public abstract void fun();
}
以前的做法是要创建一个D的子类。对fun方法进行重写。
现在可以使用匿名内部类的方式:
public class DTest {
public static void main(String[] args) {
D d = new D(){
@Override
public void fun() {
System.out.println("匿名内部类的方法重写!");
}
};
d.fun();
System.out.println(d);
}
}