/*
描述一个事物,却没有足够的信息,这时就将这个事物称为抽象事物。
面对抽象的事物,虽然不具体,但是可以简单化。
不用面对具体的事物。
特点:
1.抽象方法一定定义在抽象类中,都需要用abstract来修饰。
2.抽象类不能实例化,不能用关键字new关键字创建对象。
3.只有子类覆盖所有的抽象方法后,子类具体化,子类就可以创建对象。
如果没有覆盖所有的抽象方法,那么子类还是一个抽象类。
描述一个事物,却没有足够的信息,这时就将这个事物称为抽象事物。
面对抽象的事物,虽然不具体,但是可以简单化。
不用面对具体的事物。
特点:
1.抽象方法一定定义在抽象类中,都需要用abstract来修饰。
2.抽象类不能实例化,不能用关键字new关键字创建对象。
3.只有子类覆盖所有的抽象方法后,子类具体化,子类就可以创建对象。
如果没有覆盖所有的抽象方法,那么子类还是一个抽象类。
抽象类也是不断地向上抽取而来的。抽取了方法的声明,而不确定具体的方法内容。
由不同的子类来完成具体的方法内容
由不同的子类来完成具体的方法内容
问题:
1.抽象类中有构造方法吗?
有,抽象类的构造函数虽然不能给抽象类对象实例化,因为抽象类不能创建对象。
但是抽象类有子类,它的构造函数可以子类的对象实例化。
抽象类和一般类的异同点?
相同:都是用来描述事物,都可以进行属性和行为的描述。
不同:抽象类描述事物的信息 不具体,一般类描述事物的信息具体。
代码的不同:
抽象类中可以定义抽象方法,一般类不可以。
抽象类不可以实例化,一般类可以。
2.抽象类一定是个父类吗?
是的,必须需要子类覆盖抽象方法后,才可以实例化,使用这些方法。
abstract class Demo extends Xxx
{
abstract void show();
}
class Sub extends Demo
3.抽象类中可以不定义抽象方法吗?
可以的,仅仅是让该类不能创建对象。(抽象类本身不能创建对象,而继承了抽象类的子类若想创建对象,
! 方便创建接口的对象 必须要满足覆盖抽象类中所有的抽象方法。就因为抽象类中可以不定义抽象方法,
进而可知,不定义抽象方法的抽象类,是为了不让该类创建对象)
4.抽象关键字abstract和哪些关键字不能共存?
final
private
static
*/
1.抽象类中有构造方法吗?
有,抽象类的构造函数虽然不能给抽象类对象实例化,因为抽象类不能创建对象。
但是抽象类有子类,它的构造函数可以子类的对象实例化。
抽象类和一般类的异同点?
相同:都是用来描述事物,都可以进行属性和行为的描述。
不同:抽象类描述事物的信息 不具体,一般类描述事物的信息具体。
代码的不同:
抽象类中可以定义抽象方法,一般类不可以。
抽象类不可以实例化,一般类可以。
2.抽象类一定是个父类吗?
是的,必须需要子类覆盖抽象方法后,才可以实例化,使用这些方法。
abstract class Demo extends Xxx
{
abstract void show();
}
class Sub extends Demo
3.抽象类中可以不定义抽象方法吗?
可以的,仅仅是让该类不能创建对象。(抽象类本身不能创建对象,而继承了抽象类的子类若想创建对象,
! 方便创建接口的对象 必须要满足覆盖抽象类中所有的抽象方法。就因为抽象类中可以不定义抽象方法,
进而可知,不定义抽象方法的抽象类,是为了不让该类创建对象)
4.抽象关键字abstract和哪些关键字不能共存?
final
private
static
*/