Java中的类、接口和抽象类
程序员文章站
2022-06-26 16:58:13
对于类、抽象类和接口,我们可以理解为:抽象是对一类事物本质的抽象,接口是对事物动作的抽象,而抽象类和类又是相对的概念。举个例子:普通类:金毛,哈士奇,柴犬都是狗类。抽象类:猫,狗,猪又可以抽象出动物类,动物类相比于狗类会更抽象一些。抽象出来的性质是事物的本质不会改变。猫可以爬树,吃饭,睡觉;狗可以游泳,看家,吃饭,这些行为,我们可以将其定义在接口中。这些动作是可变的,当猫学会游泳的时候可以在接口中增添一个新的方法因此由上我们就能理解:一只狗可以会游泳会爬树,也就是说实现多个接口,但一只狗不...
对于类、抽象类和接口,我们可以理解为:抽象是对一类事物本质的抽象,接口是对事物动作的抽象,而抽象类和类又是相对的概念。
举个例子:
- 普通类:金毛,哈士奇,柴犬都是狗类。
- 抽象类:猫,狗,猪又可以抽象出动物类,动物类相比于狗类会更抽象一些。
抽象出来的性质是事物的本质不会改变。 - 猫可以爬树,吃饭,睡觉;狗可以游泳,看家,吃饭,这些行为,我们可以将其定义在接口中。
这些动作是可变的,当猫学会游泳的时候可以在接口中增添一个新的方法
因此由上我们就能理解:一只狗可以会游泳会爬树,也就是说实现多个接口,但一只狗不能又是动物又是人,所有抽象类只能被单继承
类
类:类是一个模板,它描述一类对象的行为和状态。
接口(interface)
接口就是规定一个程序要做什么,但不写具体的内容
public interface Dog{
void eat();
void swim();
...
}
接口的特征:
- 不能用于实例化对象
- 接口中没有构造方法
- 接口中所有方法必须是抽象方法(隐式抽象),没有方法体
- 接口中的变量只能是public static final修饰
- 接口不是被类继承,而是实现(implements)
- 接口支持多实现
- 当类实现接口时,必须将其中所有方法都实现
- 若实现接口的是抽象类,就没有必要实现该接口的方法
- 一个接口可以继承另一个接口,使用extends关键字
抽象类
如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。
public abstract class Animal{
private String name;
public abstract void eat();
void swim(){
System.out.print("游泳");
}
...
}
抽象类的特征:
- 抽象类不能被实例化
- 抽象类中不一定包含抽象方法,但有抽象方法的类必须是抽象类
- 抽象类中的抽象方法只是声明,不包含方法体
- 构造方法,类方法不能声明为抽象方法
- 抽象类的子类必须给出抽象类中抽象方法的具体实现,除非子类也是抽象类
接口和抽象类:
共同点:
- 接口和抽象类都不能实例化
不同点:
- 接口是被类实现,抽象类是被子类继承
- 接口中只有未实现的方法和不可变常量,抽象类中可以有变量、具体方法以及抽象方法
- 接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态方法;
- 接口可以多继承,而抽象类只能单继承
抽象类和类:
唯一不同点就是抽象类不能被实例化,且可以拥有abstrac方法,其余都一样(抽象类中可以有main方法,可以继承具体类。。。)
本文地址:https://blog.csdn.net/smart_1234/article/details/114269775