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

美女程序员鼓励师

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

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

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

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

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

注意:

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

 

2.抽象类好处与局限

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

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

局限:

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

3.实例

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基础中抽象类和普通类如何选择? 的全部内容, 来源链接: utcz.com/z/541972.html

回到顶部