【Java】抽象类_接口_最终类

简介: 【Java】抽象类_接口_最终类

类的用途

       1.放置静态属性、静态方法的地方                                


       2.用来实例化对象的模板                                              


       3.用来供其他人继承


抽象类——只可被继承

1.语法:


       在定义类的时候,添加 abstract 修饰,这个类就是抽象类


2.java中赋予了抽象类一项新的能力(普通类不具备)


       抽象类中允许定义一些方法,但没有被实现(没有方法体、只是声明),这些方法是专门留给子类去实现的,这些方法被称为抽象方法


接口——完全可以被理解成特殊的抽象类


       接口和抽象类一样,不能被实例化,只可被继承


       只能出现方法,这些方法,默认是抽象方法,并且被public所修饰


       从某些方向讲:接口是一个极端的抽象类(全部只有抽象方法的抽象类)


定义接口


       关键字:interface

public interface Flyable {
    void fly();
}

        void  fly()     默认视为        public  abstract  void  fly()

接口的功能是被实现

关键字:implements

public class 麻雀 implements Flyable {
    @Override
    public void fly() {
    }
}

接口本身也允许被继承,继承自另外的接口,同时允许多继承

interface A { void a(); }
interface B { void b(); }
interface z extends A,B { void z(); }

由于接口Z继承自接口A和接口B,所以,最终Z中有的抽象方法是 a()、b()、z()


最终类——只能实例化对象,不能被继承

通过 final 修饰类,表示最终类


public final class TestClass{
    public void a(){
    }
}

接口 VS 抽象类

相同点

1)不能被实例化

2)允许出现抽象方法


不同点

1)接口只能出现抽象方法,其他的内容通通没有


2)普通类和抽象类之间的关系是继承(extends)关系,只能单继承


     普通类和接口之间的关系是实现(implements)关系,允许一个类实现多个接口


3)接口和接口之间也允许继承关系,允许多继承


4)抽象类中可以有属性、普通方法,接口中只能出现抽象方法(默认都是public)


5)类总归还是描述一类事物,接口大多描述的是一组能力


5.png


目录
相关文章
|
12天前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
58 1
|
12天前
|
Java Go 开发工具
【Java】(9)抽象类、接口、内部的运用与作用分析,枚举类型的使用
抽象类必须使用abstract修饰符来修饰,抽象方法也必须使用abstract修饰符来修饰,抽象方法不能有方法体。抽象类不能被实例化,无法使用new关键字来调用抽象类的构造器创建抽象类的实例。抽象类可以包含成员变量、方法(普通方法和抽象方法都可以)、构造器、初始化块、内部类(接 口、枚举)5种成分。抽象类的构造器不能用于创建实例,主要是用于被其子类调用。抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类abstract static不能同时修饰一个方法。
140 0
|
12天前
|
Java Go 开发工具
【Java】(8)正则表达式的使用与常用类分享
正则表达式定义了字符串的模式。正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。
111 1
|
12天前
|
存储 Java 程序员
【Java】(6)全方面带你了解Java里的日期与时间内容,介绍 Calendar、GregorianCalendar、Date类
java.util 包提供了 Date 类来封装当前的日期和时间。Date 类提供两个构造函数来实例化 Date 对象。第一个构造函数使用当前日期和时间来初始化对象。Date( )第二个构造函数接收一个参数,该参数是从1970年1月1日起的毫秒数。
82 1
|
12天前
|
JSON 网络协议 安全
【Java基础】(1)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
51 1
|
17天前
|
编解码 Java 开发者
Java String类的关键方法总结
以上总结了Java `String` 类最常见和重要功能性方法。每种操作都对应着日常编程任务,并且理解每种操作如何影响及处理 `Strings` 对于任何使用 Java 的开发者来说都至关重要。
163 5
|
Java
Java接口和抽象类
Java接口和抽象类
183 0
|
设计模式 搜索推荐 Java
java接口和抽象类的区别,以及使用选择
java接口和抽象类的区别,以及使用选择
158 0
|
设计模式 Java
【惊天揭秘】Java编程绝技大曝光:接口、抽象类、静态类与非静态类的神秘面纱终被揭开!
【8月更文挑战第22天】Java支持面向对象编程,通过接口、抽象类、静态类(如枚举与工具类)及普通类实现设计原则。接口定义行为规范,允许多重继承;抽象类含未实现的抽象方法,需子类完成;静态类常为工具类,提供静态方法;普通类则实例化对象。恰当运用这些结构能提升程序质量。
122 2
|
Java 开发者
Java中的接口和抽象类
Java中的接口和抽象类
164 3