abstract关键字 抽象的
-
抽象类 :abstract修饰的类就是抽象类
-
抽象方法: abstract修饰的方法就是抽象 方法
-
没有方法体
-
必须定义在抽象类中
-
案例:
-
定义开发部们的不同职位
-
JAVA开发攻城狮 功能: 开发工作
-
Android开发程序媛 功能: 开发工作
-
提取共性,定义在父类中
-
父类: Develop 功能:工作
-
注意:
-
1.抽象类不能实例化|不能创建对象(因为可能会纯在抽象方法)
-
2.抽象方法所在 的类 一定是抽象类
-
3.抽象类中可以存在抽象方法,可以存在具体方法(有方法的方法)
-
4.抽象方法必须被重写 后才能使用
-
5.抽象类中的内容如何使用:
-
具体子类(能够实例化的子类):必须抽象抽象父类中的所有抽象方法 +按需新增
-
抽象子类:按需重写+按需新增
-
6.一个抽象方法一旦已经被子类所实现,不需要在此重写该方法,可以重写
-
7.abstract关键字不能与private,final,static,和native一起使用
public abstract class Develop extends Object{
//方法体不知道些什么不知道怎么写
abstract void work(); //抽象方法
abstract void sleep(); //抽象方法
void haha() {
System.out.println("抽象类中的具体方法haha");
}
}
具体子类:重写所有+按需新增
public class Java extends Develop{
@Override
void work() {
System.out.println("javaEE开发");
}
@Override
void sleep() {
System.out.println("边敲代码变睡觉");
}
void hehe() {
System.out.println("聊天止于呵呵...");
}
}
抽象子类:需要具体子类
public abstract class Android extends Develop{
@Override
void work() {
System.out.println("Android开发");
}
//abstract void sleep();
void heihei() {
System.out.println("嘿嘿笑...");
}
}
class AndroidSon extends Android{
@Override
void sleep() {
System.out.println("边吃饭边睡觉..");
}
}
测试
public class Test {
public static void main(String[] args) {
//Develop d=new Develop();
Java java=new Java();
java.work();
java.sleep();
java.hehe();
AndroidSon an=new AndroidSon();
an.work();
an.sleep();
an.heihei();
//多态
Develop d=new Java();
//d只能调用父类Develop中的内容
}
}