zoukankan      html  css  js  c++  java
  • java中的抽象类

    抽象类 : 用关键字abstract ;一个类如果被abstract修饰那么这个就叫抽象类。
    如果abstract修饰方法 ,那么这个方法就叫抽象的方法
    如果abstract修饰类,那么这个类叫抽象类。
    如果一个类继承了抽象类,必须要实现抽象类中的抽象方法。

    abstract关键字的使用:

    方法体 : 方法中大括号的内容就是方法体。
    1.如果一个方法没有方法体,那么这个方法必须要用abstract 来修饰。
    2.如果一个类中有抽象方法,那么这个类必须用abstract 来修饰 ,为抽象的类。
    3.如果一个非抽象的类,继承了这个抽象类,那么这个非抽象类中必须重写所有的抽象方法。
    4.一个抽象类中是可以有非抽象的方法。
    5.一个抽象类中是可以存在构造方法。作用是让子类能过初始化父类中的变量。
    6.抽象类不能够创建对象
              原因:如果创建对象,对象就可以调用到抽象方法,这样调用抽象方法是没有意义。

    7.一个抽象类中是可以不出现抽象方法的。

    abstract关键字的使用场景:
    我们在描述一个事物的时候,发现这个事物确实存在某种行为,但是这种行为又不具体,那么这个时候就可以抽取这种行为 声明一个没有实现的行为,这种行为就叫抽象的行为,那么这个时候就需要用到抽象类。

    //通过abstract 关键字修饰的类叫抽象类。
    abstract class Animal
    {
    String name;
    String color;
    abstract public void run ();//抽象方法是没有主体,没有方法的具体实现。

    public void eat (){
    System.out.println("动物在吃东西");
    }

    }

    //一非抽象的类继承了抽象类,必须实现抽象类中的所有方法。
    class Dog extends Animal
    {

    //需要重写父类中的run方法

    public void run(){

    System.out.println(name + "跑的很快");
    }

    }

    class Fish extends Animal
    {
    //重写方法 : 没有强制要求重写run方法。

    //应该要重写,但是我可以不重写。这样就容易出问题。

    //想一个方法强制性让子类重写父类中的某一个方法

    public void run(){
    System.out.println(name+"游得很快");
    }
    }

    class Demo8
    {
    public static void main(String[] args)
    {

    Dog d = new Dog();
    d.name = "高加索";
    d.run();
    d.eat();
    Fish fish = new Fish();
    fish.name = "鲸鱼";
    fish.run();
    fish.eat();
    }
    }

  • 相关阅读:
    基础知识漫谈(5):应用面向对象来分析“语言”
    【线段树】BZOJ2752: [HAOI2012]高速公路(road)
    【树状数组】BZOJ3132 上帝造题的七分钟
    【AC自动机】Lougu P3796
    【Splay】bzoj1500(听说此题多码上几遍就能不惧任何平衡树题)
    【fhq Treap】bzoj1500(听说此题多码上几遍就能不惧任何平衡树题)
    【可持久化线段树】POJ2104 查询区间第k小值
    【RMQ】洛谷P3379 RMQ求LCA
    【倍增】洛谷P3379 倍增求LCA
    【网络流】POJ1273 Drainage Ditches
  • 原文地址:https://www.cnblogs.com/liluyu123/p/6080798.html
Copyright © 2011-2022 走看看