Java面向对象之抽象类abstract
抽象类abstract
普通类
- 普通类可以直接产生实例化对象,并且在普通类之中可以包含有构造方法,普通方法、static 方法、常量、变量的内容。
- 所有的普通方法都会有一个"{}",这个表示方法体,有方法体的方法一定可以被对象直接调用。
抽象类
-
指在普通类的结构里面增加抽象方法的组成部分。
-
拥有抽象方法的类一定属于抽象类,抽象类要使用abstract声明。
-
抽象类中的抽象方法没有方法体,声明时不需要加"{}",但是必须有abstract声明,否则在编译时将出现语法错误。
-
abstract修饰符可以用来修饰方法,也可以修饰类,如果修饰方法,那么方法就是抽象方法;如果修饰类,该类就是抽象类。
-
抽象类中可以没有抽象方法,但是有抽象方法的类,一定要声明为抽象类。
-
抽象类,不能使用new关键字类创建对象,它是用来让子类继承的。
-
抽象方法,只有方法的声明,没有方法的实现,它是用来让子类实现的。
-
子类继承抽象类,那么就必须要实现抽象类,没有实现的抽象方法,否则该子类也要声明为抽象类。
abstract class A{
public void fun(){//普通方法
System.out.println("存在有方法体的方法!");
}
//此方法并没有方法体的声明,并且存在有abstract关键字,表示抽象方法
public abstract void print();
}

#总结 - 抽象类继承子类里面会有明确的方法覆写要求,而普通类并没有。 - 抽象类只比普通类多了一些抽象方法的定义,其他的组成部分与普通类完全一样。 - 普通类对象可以直接实例化,但是抽象类的对象必须经过向上转型之后才可以得到实例化对象。 `虽然一个子类可以去继承任意一个普通类,但是从开发的实际要求来讲,普通类不要去继承另外一个普通类,而要继承抽象类。`
追随内心,步履不停。
@侧耳听智慧,专心求聪明 Turnging your ear to wisdom and applying your heart to understanding!

浙公网安备 33010602011771号