在Java程序设计中,利用abstract关键字来进行抽象,
2.定义一系列规范(方法),继承抽象类的实体类必须满足这些规范(实现抽象方法),这是复杂系统的基础。
3.好的抽象应该就是现实世界的反映,把共性封装成抽象类,但又不存在于现实世界所以不可能实例化。
抽象类的特点:抽象类不能直接实例化!(不能创建对象)
2)抽象类中不一定都是抽象方法
2)子类具体类,那么子类必须实现父类中的抽象功能.
可以是变量,也是一个常量
构造方法:可以有无参,可以有有参,作用:给对象进行初始化的.
成员方法:可以有抽象方法,还可以有非抽象方法...
abstract和哪些关键字是冲突的,不能共有!
abstract 和 private
abstract 和 final
abstract 和 static
抽象的目的:
1.把对象的共性抽取出来,使得代码编写简洁,容易维护。2.定义一系列规范(方法),继承抽象类的实体类必须满足这些规范(实现抽象方法),这是复杂系统的基础。
3.好的抽象应该就是现实世界的反映,把共性封装成抽象类,但又不存在于现实世界所以不可能实例化。
抽象类的特点:抽象类不能直接实例化!(不能创建对象)
关于抽象类:
1)如果一个类中有抽象方法,那么这个类是一定是一个抽象类2)抽象类中不一定都是抽象方法
抽象类的子类
1)如果子类是抽象类,没有意义,因为都不能实例化,对象如何创建2)子类具体类,那么子类必须实现父类中的抽象功能.
抽象类的成员特点:
成员变量:可以是变量,也是一个常量
构造方法:可以有无参,可以有有参,作用:给对象进行初始化的.
成员方法:可以有抽象方法,还可以有非抽象方法...
abstract和哪些关键字是冲突的,不能共有!
abstract 和 private
abstract 和 final
abstract 和 static
程序示例:
public abstract class Animal { //抽象类
public abstract void cry(); //抽象方法
}
public class Cat extends Animal{
public void cry() {
System.out.println("猫叫:喵喵..."); //方法重写
}
}
public class Dog extends Animal{
public void cry() {
System.out.println("狗叫:汪汪..."); //方法重写
}
}
public class Test {
public static void main(String[] args) {
Animal a1 = new Cat(); //向上转型
Animal a2 = new Dog();
a1.cry();
a2.cry();
}
}