• 技术文章 >java >java基础

    java基础中抽象类和普通类如何选择?

    小妮浅浅小妮浅浅2021-04-06 10:05:41原创4100

    本教程操作环境:windows7系统、java10版,DELL G3电脑。

    1.抽象类与普通类的异同

    (1)只要是类都不能使用private进行修饰

    (2)抽象类需要abstract进行修饰

    (3)普通类可以实例化,抽象类不可以实例化

    注意:

    抽象方法只能定义在抽象类中,但是抽象类中可以有抽象方法和普通方法

    2.抽象类好处与局限

    1)抽象类已经实现的方法可以被其子类使用,使代码可以被复用。

    2)同时提供了抽象方法,保证类子类具有的独特性。

    局限:

    当某一方法不再通用,子类继承父类,会出现重复,造成代码冗余

    3.实例

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

    45

    46

    47

    48

    49

    50

    51

    52

    53

    54

    55

    56

    57

    58

    59

    60

    61

    62

    63

    64

    65

    66

    67

    68

    69

    70

    71

    package com.qf.demo04;

    public abstract class Animal {//表示该类是抽象的。

      private int age;

      private char sex;

      public void eat(){

        System.out.println("吃东西。。");

      }

       

      //动物应该有动的功能。。跑,飞,游。。

      public abstract void move();

       

      public Animal(int age, char sex) {

        this.age = age;

        this.sex = sex;

      }

      public Animal() {

         

      }

      public int getAge() {

        return age;

      }

      public void setAge(int age) {

        this.age = age;

      }

      public char getSex() {

        return sex;

      }

      public void setSex(char sex) {

        this.sex = sex;

      }

    }

    package com.qf.demo04;

    public class Cat extends Animal{

      @Override

      public void move() {

        System.out.println("猫咪走猫步。。");

      }

    }

    package com.qf.demo04;

    public abstract class Dog extends Animal {

    }

    package com.qf.demo04;

    public class BigDog extends Dog {

      @Override

      public void move() {

        System.out.println("大狗,慢慢的走。。。");

      }

    }

    package com.qf.demo04;

    public class SmallDog  extends Dog{

      @Override

      public void move() {

        System.out.println("撅着屁股跑。。。");

      }

    }

    package com.qf.demo04;

    public class Test9Abstract {

      public static void main(String[] args) {

        //抽象类,不能创建对象

    //    Animal a1= new Animal();

    //    a1.move();

         

        Cat c1 = new Cat();

        c1.eat();//父类的方法

        c1.move();//子类重写来的方法

         

        SmallDog d1 = new SmallDog();

        d1.eat();

        d1.move();

      }

    }

    我们做什么事情之前,会在以往的经历中找这类事物的模板,那么这个模板是一个抽象的。抽象类也是这样的模板,然后子类根据需要从其中继承。普通类也有着自身的优势,可以被实例化。

    以上就是java基础中抽象类和普通类具体的分析介绍,相信小伙伴们已经对它们的异同有所了解,在不同的使用环境下,可以选择适合的类。

    专题推荐:java基础 抽象类 普通类
    上一篇:java基础中抽象类如何使用? 下一篇:java基础:成员变量和静态变量有什么不同?

    相关文章推荐

    • java基础里的关键字有哪些?怎么用?• java访问控制关键字是什么?如何用?• java基础里final是什么?怎样实现?• java中fina和static的区别是什么?• java基础:使用final需要注意哪些事项?• java基础中抽象类如何使用?

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网