栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java基础-抽象类与接口

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java基础-抽象类与接口

抽象类与接口概念上的区别

从概念上,抽象类描述的是这个类是什么,而接口指的是可以做什么。

抽象类中可以定义普通方法和抽象方法,被子类继承之后,抽象方法必须被实现,而普通方法可以选择或者不选择重写。

抽象类
public abstract class Employee {
    private String name;
    private String address;
    private int number;

    public Employee(String name, String address, int number) {
        System.out.println("Constructing an Employee");
        this.name = name;
        this.address = address;
        this.number = number;
    }

    public double computePay() {
        System.out.println("Inside Employee computePay");
        return 0.0;
    }

    public abstract void getName(int number);
}
public class TureEmployee extends Employee {

    @Override
    public void getName(int number) {

    }

}
  • 抽象类不允许被实例化,只能被继承。也就是说,你不能 new 一个抽象类的对象出来(Employee e = new
    Employee(“George W.”, “Houston, TX”, 43);会报编译错误)。
  • 抽象类可以包含属性和方法。方法既可以包含代码实现,也可以不包含代码实现,不包含代码实现的方法叫作抽象方法。
  • 子类继承抽象类,必须实现抽象类中的所有抽象方法。对应到例子代码中就是,所有继承 TureEmployee抽象类的子类,都必须重写 getName() 方法。
  • 子类必须实现抽象类的最少一个的构造器
接口
public interface EmployeeInterface {

   int a;//报错
    public static final int field1 = 0;
    //static 修饰定义静态方法
    static void staticMethod() {
        System.out.println(field1);
        System.out.println("接口中的静态方法。");
    }

    //default修饰符定义默认方法
    default void defaultMethod() {

        System.out.println("接口中的默认方法。");
    }


}

  • 接口可以包含属性(常量,默认未public static final),但是不能包含变量。
  • 接口只能声明方法,方法不能包含代码实现。
  • 类实现接口的时候,必须实现接口中声明的所有方法。

JDK1.8后接口也可以有默认方法和静态方法了,默认方法因为非抽象方法,所以继承这个接口可以实现或者不实现。
静态方法,只能调用对象.方法去实现(EmployeeInterface.staticMethod),这个设定就很奇怪。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/573117.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号