抽象类
2015-07-09 19:33
344 查看
抽象类
抽象方法和抽象类必须使用abstract修饰符来修饰,有抽象方法的类只能被定义为抽象类,抽象类里可以没有抽象方法。利用抽象类和抽象方法,我们可以更好地发挥多态的优势,让我们的程序更加灵活。
抽象类使用注意事项
抽象类必须使用abstract修饰符修饰,抽象方法也必须使用abstract修饰符修饰,抽象方法不能有方法体。抽象类不能被实例化,无法使用new关键字来调用抽象类的构造器创建抽象类的实例。
抽象类的构造器不能用于创建实例,主要是用于被子类调用。
含有抽象方法的类只能被定义为抽象类。
抽象类允许包含抽象成员,但不是必须的;抽象类可以有非抽象方法
抽象类不能同时又是final的。
如果一个非抽象类从抽象类中派生,则其必须通过覆盖来实现所有继承而来的抽象成员
抽象类可以被抽象类继承,结果仍为抽象类。
抽象类允许被声明
代码演示
package abstractTest; abstract class Vehicle { public int wheels; public float weight; public abstract void Logo(); public Vehicle(int w, float g) { this.wheels = w; this.weight = g; } public void Speak() { System.out.println("the w vehicle is speaking"); } } class Car extends Vehicle { int passengers; public Car(int p, int w, float g) { super(w, g); this.passengers = p; } @Override public void Logo() { // TODO Auto-generated method stub System.out.println("\n car"); } public void Speak() { System.out.println("The car is speaking:Di-di"); } } class Truck extends Vehicle { int passengers; float load; public Truck(int p, float l, int w, float g) { super(w, g); this.passengers = p; this.load = l; } @Override public void Logo() { // TODO Auto-generated method stub System.out.println("\n Truck"); } public void Speak() { System.out.println("The car is speaking:Ba-ba"); } } public class VehicleMainTest { public static void main(String[] args) { Vehicle v; Car car = new Car(1, 2, 3); Truck truck = new Truck(3, 4, 5, 6); car.Logo(); truck.Speak(); } }
相关文章推荐
- Ruby类继承、抽象类、类拓展混入、代理类实例
- 解析abstract与override究竟可不可以同时使用
- C#中实现抽象类里建立静态方法
- C#抽象类和接口的区别分析
- c#中的interface abstract与virtual介绍
- java 抽象类和接口的区别详细解析
- php面向对象全攻略 (十二) 抽象方法和抽象类
- 深入分析php中接口与抽象类的区别
- JAVA 继承基本类、抽象类、接口介绍
- c#中抽象类和接口的详细介绍
- 深入解读php中关于抽象(abstract)类和抽象方法的问题分析
- PHP abstract与interface之间的区别
- PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程
- Java接口和抽象类实例分析
- php抽象类用法实例分析
- C++中抽象类和接口的区别介绍
- PHP OPP机制和模式简介(抽象类、接口和契约式编程)
- PHP 抽象方法与抽象类abstract关键字介绍及应用
- 抽象类与接口
- 初识抽象类