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

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,专注Java各类问题的解决、Java最新技术的分享、Java零基础到精通的教学,关注我,带你开启程序开发之路。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值