零基础学Java第十四天之抽象类

抽象类和抽象类的深入

抽象类

1、理解

抽象类(Abstract Class)是面向对象编程中的一个重要概念,尤其在像Java、C#和C++等编程语言中。抽象类是一种特殊的类,它不能被实例化(即不能创建抽象类的对象),但可以被其他类继承。抽象类的主要目的是为子类提供一个公共的接口,并实现一些通用的方法或定义一些抽象方法(即只有方法签名,没有方法体)。

最简单的理解:该类中的某个方法不好实现,就将该方法设置为抽象方法,该类就变成抽象类

抽象方法

  1. 没有代码块,并且使用abstract修饰
  2. 抽象方法必须在抽象类中
  3. 交给非抽象的子类重写

2、关键点

  1. 不能被实例化:因为抽象类是一种不完整的类(它可能包含抽象方法),所以你不能直接创建抽象类的对象。
  2. 可以包含抽象方法和非抽象方法:抽象方法是没有方法体的方法,只有方法签名。非抽象方法则包含完整的实现。
  3. 子类:一个抽象类可以有零个或多个子类。如果一个类继承了一个抽象类,那么它必须提供该抽象类中所有抽象方法的实现(除非该子类也是抽象的)。
  4. 用途:抽象类通常用于定义一组相关的子类所共有的公共接口。通过继承抽象类,子类可以共享一些通用的属性和方法,并且只需要实现它们特有的部分。

3、使用

// 定义一个抽象类  
abstract class Animal {  
    // 抽象方法  
    abstract void makeSound();  
  
    // 非抽象方法  
    void eat() {  
        System.out.println("The animal eats.");  
    }  
}  
// 继承抽象类的子类  
class Dog extends Animal {  
    // 实现从父类继承的抽象方法  
    @Override  
    void makeSound() {  
        System.out.println("The dog barks.");  
    }  
}  
  
// 另一个继承抽象类的子类  
class Cat extends Animal {  
    // 实现从父类继承的抽象方法  
    @Override  
    void makeSound() {  
        System.out.println("The cat meows.");  
    }  
}  
  
// 在主类中测试  
public class Main {  
    public static void main(String[] args) {  
        Dog dog = new Dog();  
        dog.eat(); // 调用非抽象方法  
        dog.makeSound(); // 调用抽象方法的实现  
  
        Cat cat = new Cat();  
        cat.eat(); // 调用非抽象方法  
        cat.makeSound(); // 调用抽象方法的实现  
    }  
}

2、抽象类的深入

  1. 抽象类中只能有抽象方法?

    抽象类中可以有构造方法、静态方法、成员方法、抽象方法

  2. 抽象类中不可以没有抽象方法?

  3. 如果父类是抽象类,则子类必须实现父类的抽象方法?

  4. 抽象类不能有构造方法?

  5. 可以使用new关键字来创建抽象类对象?

    不能,创建的是匿名内部类的对象

  1.抽象类中只能有抽象方法?
  	抽象类中可以有构造方法、静态方法、成员方法、抽象方法
  
  2.抽象类中不可以没有抽象方法?
  	可以,但是毫无意义
  
  3.如果父类是抽象类,则子类必须实现父类的抽象方法?
  	不一定,子类如果是抽象类,可以不实现父类的抽象方法
  
  4.抽象类不能有构造方法?
  	可以有
  
  5.可以使用new关键字来创建抽象类对象?
  	不能,创建的是匿名内部类的对象
  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值