抽象类

原创 2015年07月09日 19:33:16

抽象类

抽象方法和抽象类必须使用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();
        }
    }

面试题_抽象类和接口的区别

含有abstract修饰符的class 即为抽象类,abstract类不能创建实例对象,含有abstract的方法的类必须定义为abstract class ,abstract class 里的方法不...
  • baidu_31337243
  • baidu_31337243
  • 2015年09月15日 21:35
  • 1722

抽象类和接口的区别与联系

抽象类和接口的区别与联系 什么是抽象类 在面向对象的概念中,所有的对象都是用类来描述的,就是说某一个新的对象是通过实例化一个类而来的,但是,并不是所有的类都是用来描述对象的,也就是说并不是所有的类都可...
  • u010456903
  • u010456903
  • 2015年05月20日 14:58
  • 2083

Java 抽象类,抽象方法和接口

讲述Java中抽象类,抽象方法和接口的各种用法。
  • ccpat
  • ccpat
  • 2015年03月26日 20:50
  • 2383

Java4Android24_为什么用抽象类

  • 2014年09月07日 11:07
  • 18.91MB
  • 下载

抽象类与接口中方法的相同点和不同点

  • 2010年12月05日 14:19
  • 21KB
  • 下载

dot Net中抽象类与接口的区别

  • 2008年07月31日 19:39
  • 80KB
  • 下载

第7章 抽象类与接口.ppt

  • 2008年11月23日 09:40
  • 235KB
  • 下载

接口和抽象类

  • 2008年08月24日 22:08
  • 112KB
  • 下载

面向对象与Java实现(抽象类、接口

  • 2012年05月14日 13:12
  • 177KB
  • 下载

c++程序设计 多态性与抽象类

  • 2012年05月10日 08:50
  • 179KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:抽象类
举报原因:
原因补充:

(最多只允许输入30个字)