java基础5:抽象类和接口

     2022-04-28     316

关键词:

Java基础5:抽象类和接口

 

1 抽象类一般会实现一部分操作,并且留一些抽象方法让子类自己实现,比如Stringbuffer和Stringbuilder的父类abstractStringbuilder。

2 接口一般指一种规定,比如一个map接口中,可能需要实现增删改查等功能,如果你想实现一个具体map,这些方法就必须按照规定去实现。

3 另外,一个类可以实现多个接口,但是不能继承多个类。 然而接口却可以继承多个其他接口。这一点很神奇。

下面看一下具体的例子,有一些小细节平时可能不会注意。

class A {
?
}
interface M extends N,L{
?
}
interface N{
?
}
interface L{
?
}
interface 接口 {
  public final int i = 1;//变量默认都为public final修饰
  final A a = null;//基本数据类型和引用都一样
  //protected void a();//报错
  //private //报错
  public abstract void a();// 方法都是public abstract修饰的。
?
  //void b(){} 报错,接口里的方法不能有方法体,也不能有{},只能有();
?
  // final void b();
  // 注意,抽象方法不能加final。因为final方法不能被重写。
  //但如果抽象方法不被重写那就没有意义了,因为他根本没有代码体。
?
}
abstract class 抽象类 {
  public final int i = 1;//变量并没有被pulic和final修饰,只是一般的成员变量
  public final A a = null;
?
  private void A(){}//抽象类可以有具体方法
  abstract void AA();//抽象方法没有方法体
?
  //private abstract void B();//报错,组合非法
  // 因为private修饰的方法无法被子类重写,所以和final一样,使抽象方法无法被实现。
?
}
?
//抽象类也可以被实例化,举例说明
abstract class B{
  B() {
      System.out.println("b init");
  }
}
?
class C extends B{
  C(){
      super();
      System.out.println("c init");
  }
}
?
public class 接口对比抽象类 {
  @Test
  public void test() {
      C c = new C();
      //结果先实例化B,再实例化C。
      //因为会调用到父类的构造方法。
  }
}

抽象类(abstract class)和接口(interface)有什么异同?

不同:

抽象类:

1.抽象类中可以定义构造器

2.可以有抽象方法和具体方法

3.抽象类中的成员可以是 private、默认、 protected、 public

4.抽象类中可以定义成员变量

5.有抽象方法的类必须被声明为抽象类,而抽象类未必要有抽象方法

7.一个类只能继承一个抽象类

接口:

1.接口中不能定义构造器

2.方法全部都是抽象方法

3.接口中的成员全都是 public 的

4.接口中定义的成员变量实际上都是常量 (public final)

6.一个类可以实现多个接口

相同:

1.不能够实例化 (抽象类不能通过new 关键字实例化,但是构造方法可以能被调用)

2.可以将抽象类和接口类型作为引用类型

3.一个类如果继承了某个抽象类或者实现了某个接口都需要对其中的抽象方法全部进行实现,否则该类仍然需要 被声明为抽象类




























































java基础5:抽象类和接口(代码片段)

本节主要介绍了抽象类和接口的特性和使用方法。1.抽象类一般会实现一部分操作,并且留一些抽象方法让子类自己实现,比如Stringbuffer和Stringbuilder的父类abstractStringbuilder.2.接口一般指一种规定,比如一个map接口中,可能需要实... 查看详情

java基础语法爆肝两万字解析java的多态抽象类和接口(代码片段)

文章目录一、多态1.向上转型2.动态绑定3.方法重写4.向下转型5.关键字super6.在构造方法中调用重写方法(坑)7.理解多态8.小结二、抽象类1.概念2.注意事项3.抽象类的意义3.抽象类的作用三、接口1.语法规则2.实现多个接口3.... 查看详情

java基础抽象类和接口

深入理解Java的接口和抽象类  对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它... 查看详情

java基础-抽象类和接口

抽象类与接口是Java语言中对抽象概念进行定义的两种机制,正是由于他们的存在才赋予java强大的面向对象的能力。他们两者之间对抽象概念的支持有很大的相似,甚至可以互换,但是也有区别。抽象定义:  抽象就是从多个... 查看详情

java面试基础题------》抽象类和接口有什么异同

...以通过继承实现其抽象方法。*都是面向抽象编程的技术基础,实现了诸多的设计模式。不同点*接口支持多继承;抽象类不能实现多继承。*接口其中的抽象方法全部进行实现*接口只能定义抽象规则;抽象类既可以定义规则,还... 查看详情

12.java基础之抽象类和接口

接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法。     抽象类与接口是java语言中对抽象概念进行定义的两种机制,正是由于他们的存在才赋予java强大的面向对象的能力。他们两者之间对... 查看详情

抽象类和接口(基础知识巩固)

深入理解Java的接口和抽象类  对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它... 查看详情

《java基础系列》初步整理

《Java基础系列》初步整理大概有12篇,主要内容为。:抽象类和接口内部类修饰符装箱拆箱注解反射泛型异常集合IO字符串其他第一篇我们来聊聊抽象类和接口。“抽象类和接口”听起来是非常普遍的东西,有些朋友会觉得:这... 查看详情

java核心技术i---java基础知识(抽象类和接口)

一:抽象类(一)定义类:属性(0或多个)+方法(0或多个)一个完整(健康)的类:所有的方法都有实现(方法体)类可以没有方法,但是有方法就肯定要有实现,这才是一个完整的类一个完整的类才可以被实例化,被new出来如果一个类... 查看详情

java---抽象类和接口基础知识详解(及两者异同点)(代码片段)

    在本篇博客中将介绍JAVA里抽象类和接口的基础知识以及两者的异同点,在有继承和多态的基础知识上学习会更好~目录抽象类基础知识抽象类的定义、创建等基础抽象类的几点说明(一) 为何使用抽象方法抽象... 查看详情

java基础相关(代码片段)

1.接口和抽象类1).接口的特点2).抽象类特点3).接口和抽象类相同点4).接口和抽象类的区别2.抽象类和普通类的区别3.“==”和equals的区别4.Set和Map区别5.互斥锁与同步锁的区别6.读写锁7.session和cookie的区别8.重写和重载9.内存溢... 查看详情

java基础相关

1.接口和抽象类1).接口的特点2).抽象类特点3).接口和抽象类相同点4).接口和抽象类的区别2.抽象类和普通类的区别1.接口和抽象类1).接口的特点不能实例化没有构造方法方法默认publicabstract修饰变量默认publicstaticfinal修饰2).抽象类... 查看详情

java--多态,抽象类和接口(代码片段)

一、抽象类1、抽象类定义在class前添加abstract关键字publicabstractclassAbstractClass2、抽象类是无法实例化的,无法创建对象的,所以抽象类是用来被子类继承的3、final和abstract不能联合使用,这两个关键字是对立的4、抽象... 查看详情

抽象的基础类和接口(代码片段)

设计程序时,我们经常都希望基础类只为自己的衍生类提供一个接口。也就是说,我们不想其他任何人实际创建基础类的一个对象,只对上溯造型成它,以便使用它们的接口。为达到这个目的,需要把那个类变成“抽象”的——... 查看详情

java抽象类和接口

interfaceIo{   //接口,默认publicvoidspeak();}abstractclassA{//抽象类publicvoidshow(){System.out.println("Helloworld");    //普通方法}abstractvoidshowTime();    //抽象方法}publicclassTestimplementsIo{    //实现接口public 查看详情

java基础知识点笔记总结(代码片段)

文章目录1.static关键字1.1static修饰属性1.2static内存存储解析1.3static修饰方法1.4开发中,如何判断是否设置为静态属性或方法2.单例(Singleton)设计模式3.Main方法4.代码块5.final关键字6.抽象类和抽象方法7.匿名类8.模板方法设计模式9... 查看详情

java语言中的----抽象类接口

...的继承功能,这个是一个核心知识点,今天我们再继承的基础之上学习一下抽象类和接口这两个知识。什么是抽象类?如何定义一个抽象类?如何使用一个抽象类?这些都是我们需要掌握的。    同时我们还要知道... 查看详情

抽象类和接口的区别

抽象类:1)由abstract关键字修饰2)包含抽象方法的类必须是抽象类不包含抽象方法的类也可以声明为抽象类3)抽象类不能被实例化4)抽象类是需要被继承的,需要重写或者声明为抽象类:4.1)重写所有抽象方法 4.2)也声明为抽象类5)抽象... 查看详情