Java超详细介绍抽象类与接口的使用

目录
  • 1.抽象类的语法和特性
    • 1.1语法
    • 1.2特性
  • 2.接口的语法和使用
    • 2.1语法
    • 2.2特性

1.抽象类的语法和特性

1.1语法

1.在Java中,一个类如果被abstract 修饰称为抽象类,抽象类中被 abstract 修饰的方法称为抽象方法,抽象方法不用给出具体的实现体。

// 抽象类:被abstract修饰的类
public abstract class Shape {
    // 抽象方法:被abstract修饰的方法,没有方法体
    abstract public void draw();
    abstract void calcArea();
    // 抽象类也是类,也可以增加普通方法和属性,也可以包含构造方法
    public double getArea() {
        return area;
    }
    protected double area; // 面积
}

1.2特性

1. 抽象类不能直接实例化对象

Shape shape = new Shape();
// 编译出错 -> 抽象类不能被实例化

2. 抽象方法不能是 private 的

abstract class Shape {
    abstract private void draw();
}
// 编译出错 -> 抽象方法不能用private修饰

注意:抽象方法没有加访问限定符时,默认是public.

3. 抽象方法不能被 final 和 static 修饰,因为抽象方法就是用来被子类重写的,两者是”天敌“;

public abstract class Shape {
    abstract final void methodA();
    abstract public static void methodB();
}
// 编译报错: final和static修饰抽象方法,会出问题,二者属于”天敌“

4. 抽象类必须被继承,并且继承后子类要重写父类中的抽象方法,否则子类也是抽象类,必须要 使用 abstract 修饰

abstract class Shape {
    abstract void draw();
    abstract public void calcArea();
}
//1.实现抽象方法
class Cycle extends Shape {
    @Override
    void draw() {
        System.out.println("●");
    }
    @Override
    public void calcArea() {
        System.out.println("Π*r*r");
    }
}
//2.不实现抽象父类的抽象方法,但是将子类也定义为抽象类
abstract class Triangle extends Shape {
}

5. 抽象类中不一定包含抽象方法,但是有抽象方法的类一定是抽象类

6. 抽象类中可以有构造方法,供子类创建对象时,初始化父类的成员变量

2.接口的语法和使用

2.1语法

1.接口的定义格式与类的定义差不多,只要把class改成interface关键字即可。

public interface IOperation {
    public abstract void method1();
    public void method2();
    abstract void method3();
    void method4();
}

接口名的的注意事项:1.接口的命名一般以大写的 "I" 开头;2.接口的名字一般使用形容词性单词

推荐:阿里编码规范中约定, 接口中的方法和属性不要加任何修饰符号, 保持代码的简洁性。

2.2特性

1.接口不能直接使用,必须要被一个类来 "实现",并且这个类要实现这个接口中的所有抽象方法

public interface IOperation {
    public abstract void method1();
    abstract void method2();
}
class A implements IOperation {
    //如果不重写接口中的抽象方法,代码在编译期间就会报错
    //如果不想重写,那么这个类一定是抽象类
    @Override
    public void method1() {
    }
    @Override
    public void method2() {
    }
}

2.接口与接口之间是继承(extends)关系,类与接口之间是实现关系(implements)关系

public interface IOperation {
}
class A implements IOperation {
}
interface Io extends IOperation {
}

3.接口类型是一种引用类型,不能实例化对象

4.接口中每一个方法都是public的抽象方法, 即接口中的方法会被隐式的指定为 public abstract(只能是public abstract,其他修饰符都会报错)

public interface IOperation {
    private void method() {
    }
    //编译报错
}

5. 接口中的方法是不能在接口中实现的,只能由实现接口的类来实现

public interface IOperation {
   void method();
   //编译报错:接口中的方法不能自己实现
   public abstract void A() {
   }
}

6. 重写接口中方法时,不能使用 default 访问权限修饰 7. 接口中可以含有变量,但是接口中的变量会被隐式的指定为 public static final 变量,不能改变

interface IA{
    double a = 3.0; // 默认被:final public static修饰
}
public class TestDemo {
    public static void main(String[] args) {
        System.out.println(IA.a); // 可以直接通过接口名访问,说明是静态的
        //编译报错
        IA.a = 2.0; // 说明brand具有final属性
    }
}

8. 接口中不能有静态代码块和构造方法

interface USB {
    // 编译失败:接口中不能有构造方法
    public USB(){
    }
    {} // 编译失败:接口中不能有实例代码块
    void openDevice();
    void closeDevice();
}

到此这篇关于Java超详细介绍抽象类与接口的使用的文章就介绍到这了,更多相关Java抽象类与接口内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java中常用的设计模式之单例模式详解

    目录 注意 优点 缺点 使用场景 一.实现方式 二.实现方式 三.测试 总结 注意 1.单例类只能有一个实例. 2.单例类必须自己创建自己的唯一实例. 3.单例类必须给所有其他对象提供这一实例. 优点 1.在内存里只有一个实例,减少了内存的开销,尤其是频繁的创建和销毁实例(比如管理学院首页页面缓存). 2.避免对资源的多重占用(比如写文件操作). 缺点 1.没有接口,不能继承,与单一职责原则冲突,一个类应该只关心内部逻辑,而不关心外面怎么样来实例化. 使用场景 1.要求生产唯一序列号. 2.WE

  • Java零基础也看得懂的单例模式与final及抽象类和接口详解

    目录 1.单例模式 1.饿汉式和懒汉式的实现 2.饿汉式 3.懒汉式 4.懒汉式和饿汉式的区别 2.final的使用 1.基本介绍 2.使用场景 3.使用注意事项和细节讨论 3.抽象类 1.基本介绍 2.使用注意事项和细节讨论 4.接口 1.基本介绍 2.注意事项和细节讨论 3.实现接口与继承的区别 4.接口与继承同时出现如何访问属性 5.接口的多态特性 1.单例模式 1.饿汉式和懒汉式的实现 步骤: 将构造器私有化 类的内部创建对象 向外暴露一个静态的公共方法 2.饿汉式 class Scho

  • Java 设计模式以虹猫蓝兔的故事讲解单例模式

    目录 专栏介绍 本期介绍 什么是单例模式 懒汉式一 正常模式 单例模式 为什么线程不安全呢 懒汉式二 为什么线程安全呢 饿汉式 懒汉式与饿汉式的区别 专栏介绍 [JAVA长虹键法] 主要讲了23种设计模式,本系列专栏会以虹猫蓝兔七侠传的故事为例来给大家详细分析所有模式,希望能给大家带来帮助! 本期介绍 模式: 单例模式 案例: 虹猫蓝兔造剑 什么是单例模式 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的

  • Java十分钟快速掌握单例模式

    目录 前言 1.什么是单例模式: 2.单例模式的优缺点: 3.懒汉模式(比较常用) 4.饿汉模式[推荐使用] 5.单例模式的应用场景 6.单例模式的应用实例 小结: 前言 首先在Java中有23种设计模式: 创建型模式: 工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式结构型模式: 适配器模式.装饰者模式.代理模式.外观模式.桥接模式.组合模式.享元模式行为型模式::策略模式.模板方法模式.观察者模式.迭代子模式.责任链模式.命令模式.备忘录模式.状态模式.访问者模式.中介者模式.解释

  • Java超详细讲解设计模式之一的单例模式

    目录 单例模式 1.单例模式的结构 2.单例模式的实现 2.1饿汉式 2.2懒汉式 3.单例模式的破坏 3.1序列化和反序列化 3.2反射 单例模式 单例模式顾名思义就是单一的实例,涉及到一个单一的类,该类负责创建自己的对象,同时确保只有一个对象被创建,并且提供一种可以访问这个对象的方式,可以直接访问,不需要实例化该类的对象. 单例模式的特点: 1.单例类只能有一个实例 2.这个实例必须由单例类自己创建 3.单例类需要提供给外界访问这个实例 单例模式的作用: 单例模式主要为了保证在Java应用程

  • Java基础巩固抽象类与接口详解

    目录 1.抽象类 1.1.什么是抽象类 1.2.抽象类的用法 1.3.抽象类特点(限制条件) 2.接口 2.1.什么是接口 2.2.接口的用法 2.3.如何使用接口 2.4.接口的特点(限制条件) 2.5.如何实现多个接口 2.6.接口于接口之间的继承关系 2.7.如何使用接口 抽象类与接口 1.抽象类 1.1.什么是抽象类 如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类 1.2.抽象类的用法 一个类如果被 abstract 修饰称为抽象类,抽象类中被 abstract

  • 从内存模型中了解Java final的全部细节

    目录 从内存模型中了解final JMM 重排序 final域重排序规则 final对象是引用类型

  • Java超详细介绍抽象类与接口的使用

    目录 1.抽象类的语法和特性 1.1语法 1.2特性 2.接口的语法和使用 2.1语法 2.2特性 1.抽象类的语法和特性 1.1语法 1.在Java中,一个类如果被abstract 修饰称为抽象类,抽象类中被 abstract 修饰的方法称为抽象方法,抽象方法不用给出具体的实现体. // 抽象类:被abstract修饰的类 public abstract class Shape { // 抽象方法:被abstract修饰的方法,没有方法体 abstract public void draw()

  • Java 超详细讲解抽象类与接口的使用

    目录 一.抽象类 1.抽象类的语法 2.抽象类的特性 3.抽象类的作用 二.接口 1.接口的概念 2.接口使用 3.接口特性 4.实现多个接口 5.接口间的继承 6.常用的接口 (1)Comparable接口 (2)Cloneable接口 三.Object类 一.抽象类 在Java中,如果一个类被abstract修饰称为抽象类,抽象类中被abstract修饰的方法称为抽象方法,抽象方法不用给出方法体. 1.抽象类的语法 //抽象类:被abstract修饰的类 public abstract cl

  • Java超详细分析抽象类和接口的使用

    目录 什么是抽象类 抽象类语法 总结抽象类: 接口 怎么定义接口 接口间的继承 几个重要的接口 接口comparable comparator接口-比较器 cloneable接口深入理解深拷贝与浅拷贝 怎么使用cloneable接口 浅拷贝: 深拷贝 什么是抽象类 什么是抽象类呢?抽象类顾名思义就是很抽象,就是当我们没有足够的信息去描述这个类的时候我们就可以先不用描述,这样的类就是抽象类. 用代码举个例子: class Shape { public void draw() { System.ou

  • Java超详细讲解抽象类的原理与用法

    目录 1. 抽象类是什么 2 抽象类的语法 3 抽象类都有什么特性 4 抽象类是干什么的 1. 抽象类是什么 ️给大家上一篇小作文,看完这个,你就理解了什么叫做抽象类 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的, 如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类. ️思考一下抽象类和类在功能上什么区别 因为抽象类是没有足够的信息去描绘一个具体的对象的,所以抽象类也就不能实例化对象 除此之外,抽象类的其它功能都是存在的,成员

  • Java超详细介绍封装与访问控制修符

    概念:我们在写入一个类的时候,为了保护里边的属性不被随意的调用这是我们可以使用特殊的修饰符进行相应的保护,而这样的话我们似乎只能在该类中调用使用了,出现某些特殊情况时就会无法发调用,虽然挺高了安全性但也降低了灵活性,这个时候我们的包装类就出现了,我们通过对某个方法的进行特殊方法的包装来对其进行相应的调用与赋值.就相当于银行为了保护财产会选择将金钱放进保险柜中来确保其的安全,但是当我们要取钱时,银行就要拿钥匙打开保险柜.修饰符相当于银行的保险柜,封装相当于保险柜的钥匙. 访问修饰符如下: 1) p

  • Java DefaultListableBeanFactory接口超详细介绍

    目录 前言 AliasRegistry SimpleAliasRegistry SingletonBeanRegistry DefaultSingletonBeanRegistry FactoryBeanRegistrySupport AbstractBeanFactory AbstractAutowireCapableBeanFactory BeanDefinitionRegistry ConfigurableListableBeanFactory 前言 本文,对bean工厂的接口做分析梳理具

  • Java超详细讲解接口的实现与用法

    目录 1.接口的定义 2.接口的实现 3.接口的引用 4.接口的继承 5.利用接口实现多重继承 1.接口的定义 接口是一种特殊的抽象类,是Java提供的一个重要的功能,与抽象类不同的是: 接口的所有数据成员都是静态的且必须初始化. 接口中的所有方法必须都是抽象方法,不能有一般的方法. [public] interface 接口名称 [extends  父接口名列表]{    [public] [static] [final]数据类型 成员变量名 = 常量;    ...    [public][

  • Java超详细透彻讲解接口

    目录 一.引入 二.理解 三.使用 四.应用-代理模式(Proxy) 1. 应用场景 2. 分类 3. 代码演示 五.接口和抽象类之间的对比 六.经典题目(排错) 一.引入 一方面,有时必须从几个类中派生出一个子类,继承它们所有的属性和方法.但是,Java不支持多重继承.有了接口,就可以得到多重继承的效果. 另一方面,有时必须从几个类中抽取出一些共同的行为特征,而它们之间又没有is-a的关系,仅仅是具有相同的行为特征而已.例如:鼠标.键盘.打印机.扫描仪.摄像头.充电器.MP3机.手机.数码相机

  • Java超详细讲解设计模式之一的工厂模式

    目录 工厂模式 1.简单工厂 1.1结构 1.2实现 1.3优缺点 1.4扩展 2.工厂方法 2.1结构 2.2实现 2.3优缺点 3.抽象工厂 3.1结构 3.2实现 3.3优缺点 4.模式扩展 4.1实现 工厂模式 在Java应用程序中对象无处不在,这些对象都需要进行创建,如果创建的时候直接new对象,那么如果我们要更换对象,所有new对象的地方都需要进行更改.违背了软件设计原则中的开闭原则.如果我们使用工厂生产对象,只需要在工厂中关注对象的改变即可,达到了与对象解耦的目的,工厂模式最大的特

  • Java超详细分析泛型与通配符

    目录 1.泛型 1.1泛型的用法 1.1.1泛型的概念 1.1.2泛型类 1.1.3类型推导 1.2裸类型 1.3擦除机制 1.3.1关于泛型数组 1.3.2泛型的编译与擦除 1.4泛型的上界 1.4.1泛型的上界 1.4.2特殊的泛型上界 1.4.3泛型方法 1.4.4类型推导 2.通配符 2.1通配符的概念 2.2通配符的上界 2.3通配符的下界 题外话: 泛型与通配符是Java语法中比较难懂的两个语法,学习泛型和通配符的主要目的是能够看懂源码,实际使用的不多. 1.泛型 1.1泛型的用法

随机推荐