精华内容
下载资源
问答
  • 抽象类的概念和特点
    2021-06-27 16:43:17

    一、什么是抽象类?

            在Java中,一个没有方法体的方法(一个方法没有明确功能)应该定义为抽象方法,而如果类中有抽象方法,那么这个类必须定义为抽象类!

    二、抽象类的特点

            1、抽象类不一定有抽象方法,但是有抽象方法的类一定是一个抽象类。2、抽象类可以有构造方法 。3、抽象类不能实例化。4、抽象类和抽象方法都必须要使用 abstract 关键字修饰。5、抽象类的子类:可以重写抽象类中的所有抽象方法,也可以直接转换为抽象类(不推荐后者)。

    Person类

    public abstract class Person {
    
        public void eat(){
            System.out.println("吃饭");
        }
    
        public Person (){
    
        }
    
        public abstract void study();
    }

    Teacher类

    public class Teacher extends Person {
    
        @Override
        public void study() {
            System.out.println("老师正在备课");
        }
    }
    

    Student类

    public class Student extends Person {
        @Override
        public void study() {
            System.out.println("学生正在学习");
        }
    }
    

    Test类

    public class Test {
        public static void main(String[] args) {
            Teacher t = new Teacher();
            t.eat();
            t.study();
    
            System.out.println("--------------");
    
            Student s = new Student();
            s.eat();
            s.study();
    
        }
    }
    

    更多相关内容
  • 主要介绍了Java抽象类概念与用法,结合实例形式分析了java抽象类的概念、方法、特点及使用方法,需要的朋友可以参考下
  • 修饰的变量是基本类型:那么变量存储的数据值不能发生改变。 修饰的变量是引用类型:那么变量存储的地址值不能发生改变,但是地址...abstract修饰类,这个类就是抽象类; 修饰方法,这个方法就是抽象方法。............


    活动地址:CSDN21天学习挑战赛

    1. final关键字

    • 作用:🍊
    1. final关键字是【最终的】意思,可以修饰类、方法、变量。

      • 修饰类: 表明该类是最终类,不能被继承。

      在这里插入图片描述

      • 修饰方法:表明该方法是最终方法,不能被重写。
        在这里插入图片描述
      • 修饰变量:表示该变量第一次赋值后,不能再次被赋值(有且仅能被赋值一次)。

    在这里插入图片描述

    • final修饰变量的注意点:
    1. 修饰的变量是基本类型:那么变量存储的数据值不能发生改变。
    2. 修饰的变量是引用类型:那么变量存储的地址值不能发生改变,但是地址指向的对象内容是可以发生改变的。

    在这里插入图片描述

    2. 常量

    常量:使用public static final修饰的成员变量,必须有初始值,而且执行的过程中其值不能被改变。

    • 常量名的命名规范:英文单词全部大写,多个单词下划线连接起来。
    public static final int SIZE = 10;
    public static final int SIZE_WIDTH = 10;
    

    在这里插入图片描述

    3. 抽象类

    • 抽象类概念:
      1. 在Java中abstract是【抽象的】意思,可以修饰类,成员方法
      2. abstract修饰类,这个类就是抽象类;
      3. 修饰方法,这个方法就是抽象方法。

    3.1 抽象类语法

    抽象类:被abstract修饰的类
    抽象方法:被abstract修饰的方法,没有方法体

    在这里插入图片描述

    3.2 特征

    1. 抽象类不能实例化对象。
    抽象方法没有方法体,只能被重写来实现

    在这里插入图片描述
    在这里插入图片描述

    2. 抽象方法不能是private,因为抽象类天生就是要被继承的。
    抽象方法没有加访问限定符时,默认为public

    在这里插入图片描述

    3. 抽象方法不能被final、static修饰,因为抽象方法要被子类重写。

    在这里插入图片描述

    4. 抽象类A必须被继承,并且继承后子类B要重写父类A中的全部抽象方法,如果不重写,那么子类也要设置为抽象类,必须使用abstract修饰,如果子类B又被继承,那么规则同上…

    • 重写:🌰

    在这里插入图片描述

    • 不重写:🌰
      在这里插入图片描述

    5. 抽象类中不一定包含抽象方法,但是有抽方法的类一定是抽象类。
    抽象类中可以包含普通类的所能定义的成员。

    在这里插入图片描述

    6. 抽象类中可以有构造方法,供子类创建对象时,初始化父类的成员变量。也可以包含普通方法和属性。

    在这里插入图片描述

    记得三连喔~ 👍👍🏻👍🏿

    在这里插入图片描述

    展开全文
  • 抽象类 关键字:abstract:抽象 可以修饰类:叫做抽象类 可以修饰方法:叫做抽象方法,没有方法体,需要使用分号表示声明结束,抽象方法所在的类必须是抽象类 子类必须重写父类的抽象方法,除非子类也是抽象类 使用...

    抽象类

    关键字:abstract:抽象

    可以修饰类:叫做抽象类

    可以修饰方法:叫做抽象方法,没有方法体,需要使用分号表示声明结束,抽象方法所在的类必须是抽象类

    子类必须重写父类的抽象方法,除非子类也是抽象类
    使用 abstract 关键字修饰,只表示声明了一个方法,但是没有任何的实现
    特点:
    ​ 1)没有方法体,需要使用分号表示方法声明结束
    ​ 2)如果一个类中有一个方法是抽象的,那么这个类必须是抽象的
    ​ 3)抽象方法必须被子类重写,除非子类也是抽象类
    使用abstract关键字修饰
    特点:
    ​ 1)抽象类中可以包含抽象方法,也可以包含普通方法。
    ​ 2)抽象类中有构造方法,但是不能创建对象,构造方法目的在子类中会被调用。
    ​ 3)抽象类的存在就是为了被继承,子类必须重写父类的抽象方法,除非子类也是抽象类。

    与普通类的区别

    抽象类和普通类的区别:
    ​ 1)抽象类需要 abstract 声明,而普通类不需要
    ​ 2)构造方法:都有,但是抽象类不能实例化对象,普通类可以
    ​ 3)成员方法:抽象类中可以存在抽象的成员方法也可以存在非抽象成员方法,而普通类中只能存在非抽象成员方法

    接口

    官方解释:Java 接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。

    接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有方法的实现

    从功能上讲:接口表示一种约定或能力
    1)接口不能创建对象,而且接口中没有构造方法
    2)接口中的方法一般都是共有抽象方法:public abstract
    3)接口中所有的属性都是共有静态常量属性:pulbic static final

    默认值:

    在一个接口中声明方法时,若没有声明访问权限,默认也是 public,若没其他修饰默认也是 abstract;
    声明属性时,若没有声明访问权限和静态常量,默认也是 public static final

    关键字 interface:表示一个接口,接口 interface 和类 class 是平级关系

    接口名命名:

    ​ 如果接口表示一种能力,命名采用:名字+后缀 able ,比如 Serializable Comparable

    ​ 如果接口表示一种约定或规范 ,按照命名规范正常命名 USB , Comparator,CharSequence

    1)普通接口:在接口中可以声明抽象方法,和静态常量属性
    2)常量群接口:在接口中只声明一组静态常量属性
    3)标志性接口:在接口中没有抽象方法,也没有静态常量,作用为了标记某个类具有某个功能

    继承关系:使用关键字 extends 实现接口与接口的继承关系

    接口继承的特点:
    1)接口中没有私有成员,所以父类接口中的所有成员都会被子接口继承
    2)父子关系中都是接口,所以在子接口中不需要实现任何的抽象方法
    3)接口可以多继承

    jdk1.8 之后接口中使用 static 关键字修饰的方法有方法体、静态方法需要有方法体
    jdk1.8 之后接口中使用 default 关键字修饰的方法有方法体

    抽象类和接口区别

    语法:

    • 抽象类使用 abstract,接口使用 interface
    • 抽象类中可以包含抽象方法,也可以包含非抽象方法,接口中只能包含抽象方法和静态常量,
      jdk1.8 之后接口可以包含静态方法和默认方法。
    • 抽象类和接口都不能实例化。
    • 抽象类可以包含构造方法,接口中没有构造方法。

    功能:

    • 抽象类一般用来表示同类事物,接口可以表示不是同类事物。
    • 抽象类可以实现代码的重用,也可以约束子类的功能。
    • 接口就是约束实现类的功能,降低代码之间的耦合性。

    使用场景:

    • 程序或模块内部使用抽象类
    • 程序架构或模块之间使用接口

    总结

    1 抽象类:

    ​ 实例化对象没有意义,所以使用抽象类

    抽象类不能实例化对象

    ​ 抽象类可以包含抽象方法,也可以包含非抽象方法

    ​ 包含抽象方法的类一定是抽象类

    ​ 抽象类的抽象方法必须被子类重写,除非子类也是抽象类

    2 abstract 关键字

    ​ abstract 修饰类表示抽象类

    ​ abstract 修饰方法 抽象方法

    3 抽象方法

    ​ 抽象方法没有方法体

    ​ 抽象方法被子类重写

    4 final 、 abstract 、static

    ​ final 和 abstract 不能一起使用

    ​ static 和 abstract 不能一起使用

    final 修饰的类特点:不能被继承且不能被重写(修改);
    abstract 修饰的类特点:必须被继承且必须被重写;
    static 修饰的类特点:静态可被直接调用;

    附上static final abstract 总结

    在这里插入图片描述

    5 接口 :就是特殊的抽象类

    功能:表示一个约定或能力

    优点:一个类只能继承一个抽象类,但可实现多个接口(多重继承)

    现有类 A 和类 B,两个类中都有 fun() 方法,假如类 C 继承类 A 和类 B,当使用类 C 的对象调用 fun 方法时,如何执行?
    抽象类:此时不知道执行那个 fun 方法,所以抽象类不可以多继承。
    接口:而由于接口中的没有方法体,所在只要在接口 C 中存在了 fun 方法即可,所以接口支持多继承

    扩展类的功能,保持对外接口一致
    接口实现了多重继承,完成类和任何实现接口子类的通信和交互
    降低代码之间的耦合性(即提升可读性和可维护性)

    耦合性(英语:Coupling,dependency,直译为“依赖连接程度”,或称耦合力、耦合度)是一种软件度量,是指一程序中,模块及模块之间信息或参数依赖的程度。
    内聚性是一个和耦合性相对的概念,一般而言低耦合性代表高内聚性,反之亦然。
    耦合性和内聚性都是由提出结构化设计概念的赖瑞·康斯坦丁所提出[1]。低耦合性是结构良好程序的特性,低耦合性程序的可读性及可维护性会比较好。

    学习原文地址

    展开全文
  • 本文实例讲述了PHP抽象类和接口用法。分享给大家供大家参考,具体如下: 前言 对于oop,估计大多数人并不陌生。有些人除PHP外也学习不少其他语言,会发现php的不同之处,可能语法极其丑陋,但并不妨碍它成为世界上...
  • 抽象类定义

    2021-11-25 14:05:47
    定义抽象类。 某些类在现实世界中不能直接找到对应的实例。如动物类,不可能为它找到一个对应的 事物,因为现实世界中只有猫、鸟、青蛙等具体动物,而它们都是动物的子类,这样的类称为抽 象类。 抽象类一般没有...

    1)抽象类
    在定又一个类的时候,经常会碰到这样的情况:些方法对于所有的对象都是合适的,但
    有些方法只对某个特定类型的对象才有意义。这些方法在这个类中是不能实现的,把这种类
    定义为抽象类。
    某些类在现实世界中不能直接找到对应的实例。如动物类,不可能为它找到一个对应的
    事物,因为现实世界中只有猫、鸟、青蛙等具体动物,而它们都是动物的子类,这样的类称为抽
    象类。
    抽象类一般没有足够的信息来描述一一个具体的对象。抽象类只用于继承,不能用于创建
    对象。一个抽象类一般包括-一个或多个抽象方法(只有方法说明,没有方法体)。

    抽象类的子类必须实现其父类定义的每一一 个抽象方法,若没有实现父类的所有抽象方法,
    则该子类也应该定义为抽象类。
    (1)抽象类的实现
    抽象类由abstract 修饰,其格式是:
    abstract class类名
    类成员定义
    抽象类也可以包含非抽象的方法。抽象类具有以下特性:
    水①抽象类中不是所有的方法都是抽象方法,可以在抽象类中声明并实现方法。
    ②抽象类的子类必须实现父类的所有抽象方法后才能实例化,否则这个子类也会成为一一
    个抽象类。
    ③抽象类不能实例化。
    ④可以定义不包含抽象方法的抽象类,此时该类不能被实例化。
    项目中Employee类没有对应的实体,因此可以定义Employee 类为抽象类。为民资路,温
    (2 )抽象方法( abstract method)
    在Java中,只声明而没有实现的方法称为抽象方法,其语法规则如下:
    abstract返回值类型抽象方法名 ([ <形式参数列表> ]);

    ①定义抽象类Bird, Bird类中有一个属性名称( String 类型)构造函数和一个抽象方法
    void Eat()。
    abstract class Bird {
    String name;
    public Bird( String name) {
    this. name = name;{
    abstract void Eat( );}
    ②定义继承于Bird 类的Ostrich(鸵鸟)类。
    class Ostrich extends Bird {
    private String color;
    public Ostrich( String color) {
    super("鸵鸟");
    this. color = color;

    System. out. printn(”我的名字是" + super. name +”我的颜色为" + color);

    }
    void Eat() {
    System. out. printn("鸵鸟杂食性,主食草、叶种子、嫩枝、多汁的植物、树根带茎的
    花及果实等,此外还有蜥蛇幼鸟、小哺乳动物和一些昆虫等" );}

    }

    2)接口
    一个父类。单继承性使得1
    Java 只支持单维承机制,不支持多重继承,即一个类只能有
    因多重继承而引起难以预料的

    结构简单,层次清楚,易于管理,更加安全可靠,从而避免
    突。但在实际应用中也需要使用多重继承的功能。
    (1)接口的概念
    接口就是方法定义和常量值的集合。接口在语法上和类很
    很相似,它也有属性和方法,接口
    间也可以形成继承关系。但接口和类有着很大的区别,
    它的属性都是常量,方法都是抽象)
    法,没有方法体。
    接口的使用方法是:首先定义一个接口,可以先把它理解成
    个特殊的类,然后在某个类
    中要使用这个接口时,就在这个类的定义时声明要实现某个接口。
    (2)接口的定义
    接口的定义包括接口声明和接口体两部分,格式如下:
    [修饰符] < interface> <接口名> [extends父接口列表] 
    [ public] [static] [final] 变量名=初始值;//静态常量
    [public] [abstraet] 返回值方法名([参数列表]) throws[异常列表]//方法声明
    接口的修饰符可以是public或者包访问权限修饰符。当被punlic修饰时,即指明任意类
    均可以使用这个接口;当被包访问权限修饰符修饰时,即指明接口只能被与它处在同一包中的
    成员访问。extends 子句与类声明中的extends子句基本相同,不同的是一个接 口可以有多个
    父接口,中间用逗号隔开,而一个类只能有一个父类。子接口继承父接口中所有的常量和抽象
    方法。
    接口中的成员变量都是公有的、静态的、最终的常量,接口中定义的方法都是抽象、公有
    的,所以修饰符可以省略。在接口中的方法只有定义没有实现,即接口中的方法都是抽象方
    法,所以实际上接口就是一种特殊的抽象类。
    举例:定义名为BirdAction的接口,其中有一个常量swing,以及两个抽象方法flying( )和
    moving( )。
    public static final int swing =2;
    public abstract void flying( );
    public abstract void moving( );
    接口有如下特点:

    ①接口用关键字interface来定义,而不是class
    ②接口中定义的变量全部是静态变量,而且是最终的静态变量。接口还可以用来实现不
    同类之间的常量共享。
    ③接口中没有自身的构造方法,而且定义的方法都是抽象方法,即只提供方法的定义,而
    不提供具体的实现。
    ④接口采用多重继承机制,而不是采用类的单重继承机制。

    展开全文
  • 问题 你想定义一个接口或抽象类,并且通过执行类型检查来确保子类实现了某些特定的方法 解决方案 使用 abc 模块可以很轻松的定义...抽象类的一个特点是它不能直接被实例化,比如你想像下面这样做是不行的: a = IStr
  • Python中我们可以使用abc模块来构建抽象类。在讲抽象类之前,先说下抽象方法的实现。抽象方法是基类中定义的方法,但却没有任何实现。在python中实现一个抽象方法的简单的方法是:class Sheep(object):def __init__...
  • 在一个类中,如果该类中存在一个功能,仅仅方法声明,没有方法体(抽象方法),需要将该类定义抽象类,如:动物–本身就不是具体的(抽象动物类),将动物的吃或者睡定义为抽象功能。 特点 (1)、如果一个类中有...
  • 9.JAVA-抽象类定义

    2021-08-11 06:55:05
    1.抽象类 ...抽象类里可以实现抽象方法,该方法特征在于:只有声明,并没有方法体(所以子类必须全部覆写,并且子类不能为抽象类) 比如图形(Shape)类, 就是一个抽象的概念,因为我们无法计算这个“图...
  • 抽象类定义

    2021-07-19 10:09:30
    抽象类定义: 在继承的层次结构中,每个新子类都使类变得越来越明确具体。如果从一个子类追溯到父类,类就会变得更通用、更加不明确。类的设计应该确保父类包含它的子类的共同特征。有时候,一个父类设计的非常抽象...
  • 抽象类和接口

    千次阅读 2020-11-24 19:38:35
    抽象类 ​ 概述 ​ 父类当中的方法,被他的子类们重写,子类的各自实现又不一样。那么父类的方法声明方法体,只有声明还有意义,而方法体内容则没有存在的意义。我们把这种没有方法体内容的方法称为抽象方法。...
  • 抽象类概念和作用

    2021-10-11 13:58:12
    一、抽象类概念和作用 1.抽象的定义 抽象是把多个事物的共性的内容抽取出来,本质就是把我们关注的内容抽取出来。(比如:宝马、奔驰都属于汽车,汽车是抽象出来的概念) 2.抽象类 Java中可以定义没有方法体的方法...
  • Java中的抽象类和接口

    千次阅读 多人点赞 2022-04-08 15:17:42
    各位铁汁们大家好呀!今天让我们继续学习java,看看java中的抽象类和接口到底是什么? 里面也会讲到多态呀,一起来看看吧
  • 抽象类 1.抽象类中可以构造方法 2.抽象类中可以存在普通属性...6.抽象类中的抽象方法,需要有子类实现,如果子类不实现,则子类也需要定义为抽象的。 7.抽象类只能被单继承,抽象类可继承接口也可继承具体类(继承...
  • 抽象类的概述和特点 /* 抽象的表述: 我们之前所说的猫,狗,猪,羊驼,熊猫等等都是动物的具体的例子,而动物本身是一个抽象的 概念,而我们之前是将动物写成了一个类,而类又可以创建对象,但是呢,实际上抽象的东西本身...
  • 抽象类和接口的区别以及抽象类和接口的使用场景

    万次阅读 多人点赞 2019-05-30 18:15:44
    在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就可以称之为抽象类。 1.抽象方法:使用...
  • 今天来说一波自己对java中抽象类和接口的理解,含参考内容:一、抽象类1、定义:public abstract class 类名{}java语言中所有的对象都是用类来进行描述,但是并不是所有的类都是用来描述对象的。我所理解的抽象类...
  • 抽象类和抽象方法

    2022-07-27 15:43:59
    1、什么是抽象类和抽象方法 抽象类用来描述一种类型应该具备的基本特征与功能, 具体如何去完成这些行为由子类通过方法重写来完成。 例如动物都能行动,但不同的动物行动的方式都不同,狗是走路,鸟是飞行,鱼是游泳...
  • 类的继承结构中,越往上...定义抽象类的作用是将一类对象的共同特点抽象出来,成为代表该类共同特性的抽象概念,其后在描述某一具体对象时,只要添加与其他子类对象的不同之处,而不需要重复类的共同特性。这样就使...
  • 什么是抽象类?怎么定义

    千次阅读 2021-09-01 09:47:26
    什么是抽象类?怎么定义?这是属于java技术里面的一个知识点,本期教程就是围绕这个问题做的相关介绍,当定义一个类时,常常需要定义一些成员方法描述类的行为特征,但有时这些方法的实现方式是无法确定的。例如,在...
  • Java中抽象类和接口的区别

    万次阅读 多人点赞 2019-02-07 14:10:07
    在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然。今天我们就一起来学习一下Java中的接口...
  • Java抽象类方法和抽象类简述
  • 抽象类概述和特点

    2022-02-12 18:44:59
    抽象类概述和特点: 1.在java中,一个没有方法体的方法应该定义为抽象方法,而类中如果有抽象方法,该类必须定义抽象类 2.抽象类和抽象方法必须使用abstract关键字修饰 public abstract class 类名 {} public ...
  • 抽象类(abstract class)接口(interface)是面向对象很重要的概念,他们很相似,都是定义要实现的方法,但又有不同的使用场景,PHP的抽象类和接口有什么区别,看下面的示例。接口(Interface)—— 定义行为抽象类(Abs...
  • 抽象类和接口的区别

    2018-06-27 22:45:03
    从这里可以看出,抽象类就是为了继承而存在的,如果你定义了一个抽象类,却不去继承它, 那么等于白白创建了这个抽象类,因为你不能用它来做任何事情。对于一个父类, 如果它的某个方法在父类中实现出来没有任何...
  • 抽象类特点

    千次阅读 2020-12-27 19:17:59
    一、特点: 1、方法只有声明,没有实现时,该方法就是抽象方法,需要被abstract修饰。 2、抽象类不可以被实例化。...2、抽象类可以不定义抽象方法,目的是不让该类创建对象。 3、abstract关键字不可以与private、stat
  • 抽象类概念和作用

    2021-05-25 21:27:02
    定义中含有抽象方法的类叫做抽象类 抽象类代表一种抽象的对象的类型 抽象类不能实例化 抽象类中可以有具体方法,可以没有抽象方法 模板方法模式 定义:一个模板方法用一些抽象的操作定义一个算法,而子

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 358,625
精华内容 143,450
热门标签
关键字:

抽象类的概念和特点