/*
抽象类:
1.方法只有声明没有实现是,该方法就是抽象方法,需要被abstract修饰.
抽象方法必须定义在抽象类中.该类也必须用abstract修饰.
2.抽象类不可以被实例化.因为调用抽象方法没有意义.
3.抽象类必须有其子类覆盖了所有的抽象方法之后,该子类才可以实例化,否则这个子类还是抽象类,
抽象类中有构造函数吗?
有,用于给子类对象进行初始化.
抽象类可以不定义抽象方法吗?
可以.但是很少见,目的就是不让该类创建对象.AWT的适配器对象就是这种类.通常这个类中的方法有方法体,
但是没内容.
class Demo {
void show1() ; //没有方法体
void show2(){} //有方法体但是没内容
}
抽象关键字不可以和哪些关键字共存?
private 不可以.因为私有方法不能被覆盖.
static 不可以.静态方法不需要对象就能调用.但是调用抽象方法没有意义.
final 不可以.因为final修饰的类不可以被继承,并且final修饰的方法不可以被覆盖.
抽象类和一般类的区别.
相同点:
抽象类和一般类都是用来描述事物的.都在内部定义了成员.
不同:
1.一般类有足够的信息描述事物.
抽象类描述事物的信息有可能不足.
2.一般类中不能定义抽象方法,只能定义非抽象方法.
抽象类中可以定义抽象方法.也可以定义非抽象方法.
3.一般类可以被实例化.
抽象类不可以被实例化.
抽象类一定是个父类吗?
是的.因为需要子类覆盖其方法后才可以对子类实例化.
*/
public class AbstractDemo {
public static void main(String[] args) {
DemoA a = new DemoA() ;
a.show();
DemoB b = new DemoB() ;
b.show();
}
}
abstract class Demo {
abstract void show() ; // abstract 抽象类关键字,抽象方法一定在抽象类中]
void show2() {
}
}
class DemoA extends Demo{
void show() {
System.out.println("demoa show");
}
}
class DemoB extends Demo{
void show() {
System.out.println("demob show");
}
}
抽象类
最新推荐文章于 2024-06-22 00:00:00 发布