JAVA:抽象类和接口

简介: 浅谈抽象类和接口

 抽象类:定义一个类的目的,不是为了创建自身对象,而是为了提供一个公共的接口,那么可以把相应的成员函数定义为抽象函数。

//显然,在Animal类中bark()方法无法具体实现,而在子类中继承了bark()方法并具体地重写了该方法去实现。
//即父类中的bark()方法去实现是没有任何意义的,该方法只能在子类根据具体情况去实现。

public class Animal {

   public void bark() {} }

上面的语法和用法是允许这样,但一般这种情况还是把它抽象成abstract方法。

// 这种情况可以将父类声明为抽象类。抽象类需要用abstract修饰符修饰

public abstract class Animal {

   public abstract void bark() ; //抽象方法没有方法体,因为本身为不能实现的方法。

   

   public void say(){

       System.out.println("抽象类中的普通方法!");

   }  }

1.抽象类不能创建对象,即不能实例化,new Animal()(X)。

2.抽象类中包含抽象方法和普通的成员方法和成员变量。但不同的是:抽象类中的抽象方法只能用public或protected修饰。因为抽象类的目的是让其子类继承重写。

3.若一个类继承了一个抽象类,那么子类必须实现父类的抽象方法。否则,子类继承的方法还是  抽象方法,子类也是抽象类了,要用abstract修饰。

public class BirdextendsAnimal {

   public void bark() {

       System.out.println("叽叽喳喳~~"); //具体的方法实现

   } }

image.gif

接口(Interface)——抽象类型,是抽象方法的集合。接口通常以Interface来声明,一个类通过继承接口的方式,从而继承接口的抽象方法。

1.类是描述对象的属性和方法,而接口则包含类要实现的方法。
2.实现接口的类是抽象类,否则该类要定义接口中的所有方法。
3.接口所有的方法中都是抽象方法,不能被实例化,但可以被实现。

public interface USB {

   public void install();  //已默认为抽象方法,可以不写abstract修饰符.

   public void work();

}

接口继承形式: class ClassName implements Interface 1,Interface 2,[...]{} ,可以多重继承。

//必须实现接口所有抽象的方法,或者成为抽象类

public class Phone implements USB {

   public void install() {

       System.out.println("为手机安装USB驱动!");

   }

   public void work() {

       System.out.println("通过USB接口,来给手机传递数据!");

   } }

public  class Print implements USB {

   public void install() {

       System.out.println("为打印机安装USB驱动!");

   }

   public void work() {

       System.out.println("打印机可以通过USB接口来打印文档!");

   } }

public class Computer {    

   public void plugin(USB usb) {

       usb.install();

       usb.work();

//表面上调用的是接口里的抽象方法,实际上调用的是“子类”实现的具体的方法。

   } }

image.gif

目录
相关文章
|
1月前
|
JSON Java Apache
非常实用的Http应用框架,杜绝Java Http 接口对接繁琐编程
UniHttp 是一个声明式的 HTTP 接口对接框架,帮助开发者快速对接第三方 HTTP 接口。通过 @HttpApi 注解定义接口,使用 @GetHttpInterface 和 @PostHttpInterface 等注解配置请求方法和参数。支持自定义代理逻辑、全局请求参数、错误处理和连接池配置,提高代码的内聚性和可读性。
123 3
|
3天前
|
安全 Java API
java如何请求接口然后终止某个线程
通过本文的介绍,您应该能够理解如何在Java中请求接口并根据返回结果终止某个线程。合理使用标志位或 `interrupt`方法可以确保线程的安全终止,而处理好网络请求中的各种异常情况,可以提高程序的稳定性和可靠性。
26 6
|
20天前
|
Java API
Java中内置的函数式接口
Java中内置的函数式接口
20 2
|
24天前
|
Java
在Java中如何实现接口?
实现接口是 Java 编程中的一个重要环节,它有助于提高代码的规范性、可扩展性和复用性。通过正确地实现接口,可以使代码更加灵活、易于维护和扩展。
46 3
|
23天前
|
Java
在Java中,接口之间可以继承吗?
接口继承是一种重要的机制,它允许一个接口从另一个或多个接口继承方法和常量。
68 1
|
23天前
|
Java 开发者
在 Java 中,一个类可以实现多个接口吗?
这是 Java 面向对象编程的一个重要特性,它提供了极大的灵活性和扩展性。
46 1
|
23天前
|
Java
在Java中实现接口的具体代码示例
可以根据具体的需求,创建更多的类来实现这个接口,以满足不同形状的计算需求。希望这个示例对你理解在 Java 中如何实现接口有所帮助。
37 1
|
29天前
|
Java Android开发
Eclipse 创建 Java 接口
Eclipse 创建 Java 接口
27 1
|
1月前
|
Java
java线程接口
Thread的构造方法创建对象的时候传入了Runnable接口的对象 ,Runnable接口对象重写run方法相当于指定线程任务,创建线程的时候绑定了该线程对象要干的任务。 Runnable的对象称之为:线程任务对象 不是线程对象 必须要交给Thread线程对象。 通过Thread的构造方法, 就可以把任务对象Runnable,绑定到Thread对象中, 将来执行start方法,就会自动执行Runable实现类对象中的run里面的内容。
39 1
|
1月前
|
Java 开发者
在Java多线程编程的世界里,Lock接口正逐渐成为高手们的首选,取代了传统的synchronized关键字
在Java多线程编程的世界里,Lock接口正逐渐成为高手们的首选,取代了传统的synchronized关键字
44 4