Java中的抽象类和接口,以及两者的区别

本文详细解析了Java中抽象类和接口的概念与用法,包括它们的定义、成员特性及区别,并通过具体示例展示了如何使用抽象类和接口。

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

抽象类:

package practice;
/**
 * Created by fangjiejie on 2016/11/21.
 */
public abstract class P32 {
    //abstract int a=10;错误的,abstract只能修饰方法和类不能修饰变量
    int a;
    protected int b; //抽象类中可以包含普通类中任意成员
    private void setB(){
        System.out.println("bbbbbbbb");
    }
    //private abstract void setA();错误的,抽象方法不能是私有的
    abstract void setA();//含有抽象方法的一定是抽象类(只是声明),
                         // 抽象方法不能在抽象类实现而是由继承它的类实现
    abstract String hello();
}
class P320 extends P32{//抽象类一旦被继承,抽象类中的所有的抽象方法一定要被实现,
                         //一旦不能实现,那么该类也只能被定义为抽象类
    void setA(){
       a=100;
    }
     String hello(){
        return " 你好 ~";
    }

    public static void main(String[] args) {
          //P32 my=new P32();错误的,抽象类不能被实例化
    }
}

接口:

package practice;

/**
 * Created by fangjiejie on 2016/11/21.
 */

public interface P33{//接口是抽象方法和常量值的定义的集合
    //接口中的变量全都是常量 ,默认public static final
    int a=10;

    //接口中的方法默认为public static final
    void A();
}
interface P333 extends P3333,P33{//接口可以继承接口,并可以实现多继承接口
    void B();
}
interface P3333 {
    void C();
}
class PP33 implements P33,P333{//一个类可以实现多个接口
    public void A(){//实现接口中的方法重写,权限为public
        System.out.println("haha");
    }
    @Override
    public void B(){
        System.out.println("xixixi");
    }
    public void C(){
        System.out.println("hehehe");
    }
}
class PPP33 extends PP33 implements P33{//一个类可以同时继承类和实现接口,
                                           // 继承在前实现在后
    public void D(){

    }
}

抽象类与接口的区别:

1.接口中的方法都是抽象的,而且是公共的,抽象类中可以有一般方法,访问作用域可以是四种修饰符,抽象方法不能是private;
2.接口中没有变量,都是常量,而抽象类中有变量和常量
3.类和接口的关系是implements是实现,而类和抽象类的关系是继承extends
4.类可以实现多个接口,但只能继承一个抽象类
5.接口可以多继承,但不能实现。
6.抽象类只能有一个父类

总结:接口只能继承接口,而且可以多继承,但不能实现接口。
类只能继承一个类,但可以实现多个接口。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值