Java抽象类和接口的区别

本文详细阐述了抽象类与接口的基本概念及使用方法。对比两者的特点,如抽象类可以拥有构造方法、普通属性方法等,而接口则侧重于提供方法声明、支持多继承等特性。此外还介绍了如何在代码中正确地定义抽象类与接口。

抽象类:

1、抽象类中可以含有构造方法。

2、抽象类可以存在普通属性方法,静态属性和方法。

3、抽象类可以存在抽象方法。

4、如果一个类里面含有抽象方法,则这个类一定是抽象类。但是抽象类不一定含有抽象方法。

5、抽象类中的抽象方法需要子类来实现,如果子类没有实现,则必须把其子类也设置成抽象类。


接口:

1、接口中只有方法的声明没有方法体。

2、在接口中只有常量。因为定义的变量在编译的时候都会默认加上public static final.

3、在接口中的方法,永远都被public来修饰。

4、接口中没有构造方法,所以不能实例化接口对象。

5、接口可以实现多继承。

6、接口中定义的方法都需要又实现类来实现,如果不能实现接口中的所有方法,则定义该类为抽象类。


接口:

package com.xaut.cherry.niukewang0702;


public interface NewInterface {
String name  = null;
private void getName(){

}


}


说明:接口的方法只能是public而且没有方法体。

package com.xaut.cherry.niukewang0702;


public interface NewInterface {
String name  = null;
void getName();
NewInterface() {
}


}

说明:接口不能有构造方法。

package com.xaut.cherry.niukewang0702;


public interface NewInterface {
String name;
void getName();
// NewInterface() {
// }


}


说明:接口中的属性是final的,需要进行初始化。


抽象类:

package com.xaut.cherry.niukewang0702;


public abstract class AbstractClass {
private String name;
public int Id;
static char sex;

AbstractClass(){//抽象类构造函数

}
    String getName();



}


说明:在定义方法时,如果没有方法体,则必须给方法定义前面添加abstract关键字。

package com.xaut.cherry.niukewang0702;


public abstract class AbstractClass {
private String name;
public int Id;
static char sex;

AbstractClass(){//抽象类构造函数

}
    String getName() {
return null;
}
    abstract int getId();
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值