Java抽象类的特点

本文详细介绍了Java中抽象类和抽象方法的概念、特点及使用方法,包括抽象类的定义、抽象方法的定义和作用,以及如何在子类中实现抽象方法。通过实例代码展示了抽象类和抽象方法的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.抽象方法一定在抽象类中;
2.抽象方法和抽象类都必须要使用abstract关键字来修饰;
3.抽象类不可以用new来创建对象,因为调用抽象方法没有意义(抽象方法没有方法体);
4.抽象类中的抽象方法要被使用,必须由子类重写父类所有的抽象方法,建立子类对象进行调用;如果子类只重写了父类的部分方法,那么子类也必须是抽象类
例子:

abstract class A{
        
        abstract void show();
}

class B extends A{

        @Override
        void show() {
                System.out.println("hello!");
        }
        
        
}


public class Test3 {
        public static void main(String[] args) {
                A a=new B();
                a.show();
        }
        


}

  

转载于:https://www.cnblogs.com/haitang/p/4757292.html

### 抽象类的特性与使用要点 Java中的抽象类是一种特殊的,它不能被实例化,并且通常包含一个或多个没有具体实现的方法(即抽象方法)。以下是关于Java抽象类的一些关键特性使用要点: - **定义方式**:一个如果被`abstract`关键字修饰,则成为抽象类。例如: ```java public abstract class Shape { // 体 } ``` - **抽象方法**:在抽象类中可以声明抽象方法,这些方法只有方法签名而没有方法体。子需要提供这些方法的具体实现。 ```java abstract void calcArea(); ``` 注意,抽象方法不能是私有的(private),因为它们需要在子中被重写[^3]。 - **非抽象方法属性**:除了抽象方法之外,抽象类也可以拥有普通的成员变量具有具体实现的方法。 ```java public double x; public double getX() { return x; } ``` - **继承要求**:如果一个具体的(非抽象)继承了一个抽象类,那么这个子必须实现其父所有的抽象方法,除非该子本身也是抽象类。 ```java public class Circle extends Shape { @Override void calcArea() { // 实现计算面积的逻辑 } } ``` - **不可实例化**:尝试直接实例化一个抽象类会导致编译错误。只有当有一个非抽象的子时,才能创建对象。 ```java // 下面这行代码会引发编译错误 // A a = new A(); ``` - **构造函数**:尽管抽象类不能被实例化,但是它们仍然可以有构造函数,用于初始化抽象类中的字段或者为子提供初始化逻辑。 ```java public abstract class Shape { public Shape() { // 初始化代码 } } ``` - **静态方法**:抽象类中的静态方法不能被声明为抽象方法,因为静态方法属于而不是实例,这与抽象方法的设计初衷相悖。 - **应用场景**:抽象类常用于设计层次结构中的基,定义一组子共有的行为属性,同时允许每个子根据自己的需求来实现特定的行为。 通过合理地运用抽象类,可以在面向对象编程中更好地组织代码结构,提高代码复用性,并且能够强制规定子的设计规范。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值