学完java之后,发现很多基础东西都遗忘却。。。所以特地重新刷课,总结基础。。。温故而知新,增加记忆吧
抽象(关键字:Abstract)
多个类中出现相同的方法,但是方法实现的功能内容并不相同,即方法体不同。这时可以进行向上抽取,只能抽取方法功能定义,不能写入方法体。
知识点:
抽象类不能够被实例化(说的通俗一点就是,不能够被new出来);
抽象类可以被继承,故可以通过子类来实例化;
含有抽象方法的类是抽象类,即使类中只有一个方法是抽象类,也就是说抽象类中可以包含非抽象方法;
抽象类中抽象方法的作用:指出类中要实现的功能,但是没有具体操作。
继承抽象类的子类,必须重写抽象类中的所有抽象方法。如果子类只重写了部分抽象方法,那么子类也是抽象类。
抽象类中也可以没有抽象方法(仅仅是为了类不能够被实例化)
抽象方法一定存在于抽象类中
举一个简单的示例:
abstract class Person
{
String name;
Person(){
name="地球";
System.out.println("我们都是地球人");
}
abstract void study();
abstract void speak();
abstract void skin();
void sleep(){
System.out.println("天黑睡觉");
}
}
class ChinesePerson extends Person
{
ChinesePerson(String name){
System.out.println(super.name);
System.out.println(name);
}
void study(){
System.out.println("学习中文");
}
void speak(){
System.out.println("说中文");
}
void skin(){
System.out.println("黄皮肤");
}
}
public class AbstractDemo
{
public static void main(String[] args){
ChinesePerson cp=new ChinesePerson("人");
cp.study();
cp.speak();
cp.skin();
cp.sleep();
}
}
/*输出结果:
我们都是地球人
地球
人
学习中文
说中文
黄皮肤
天黑睡觉
*/
如果有这里存在疑问的,欢迎互相学习。。。