接口interfance的基本使用

一.為什么有接口?

接口:就是一種規則。

二.接口的定義和使用

1.接口用關鍵字interface來定義

public interface 接口名{}

2.接口不能實例化

3.接口和類之間是實現關系,通過implements關鍵字表示

4.接口的子類(實現類)

注意1:

接口和類的實現關系,可以單實現,也可以多實現。

public class 類名 implements 接口名1,接口名2{

}

注意2:

實現類還可以在繼承一個類的同時實現多個接口。

publi class? 類名 extends? 父類 implements? 接口名1,接口名2{

}

三.案例

Animal類:

package day;public abstract class Animal {private String  name;private  int age;public Animal() {}public Animal(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public abstract void eat();
}

? Swim接口:

package day;public interface Swim {public abstract void swim();
}

Dog類:

package day;public class Dog extends Animal implements Swim {@Overridepublic void eat() {System.out.println("狗吃骨頭");}@Overridepublic void swim() {System.out.println("狗刨");}
}

Forg類:

package day;public class Test {public static void main(String[] args) {Forg f = new Forg("小青", 1);System.out.println(f.getName() + "," + f.getAge());f.eat();f.swim();//        創建兔子的對象Rabbit r = new Rabbit("小白", 2);System.out.println(r.getAge() + r.getAge());r.eat();}
}

Raabit類:

package day;public class Rabbit extends Animal {@Overridepublic void eat() {System.out.println("兔子在吃胡羅波");}public Rabbit() {}public Rabbit(String name, int age) {super(name, age);}
}

Test測試類:

package day;public class Test {public static void main(String[] args) {Forg f = new Forg("小青", 1);System.out.println(f.getName() + "," + f.getAge());f.eat();f.swim();//        創建兔子的對象Rabbit r = new Rabbit("小白", 2);System.out.println(r.getAge() + r.getAge());r.eat();}
}

運行的結果:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/21092.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/21092.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/21092.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

43.自定義線程池(一)

ThreadPool是線程池,里面是一定數量的線程,是消費者。 BlockingQueue阻塞隊列,線程池中的線程會從阻塞隊列中去拿任務執行。任務多了線程池處理不過來了,就會到Blocking Queue中排隊,等待執行。鏈表結構,特…

Netfilter/iptables

1. Netfilter組件圖 https://en.wikipedia.org/wiki/Netfilter 其中: etables作用于數據鏈路層,arptables針對ARP, iptables/ip6tables針對IP層。 nftables 是新的包過濾組件. nft是相對應的新的用戶態組件,用于替換etables,arptables,ipt…

從tensorflow導入EarlyStopping能運行但是一直提示未解析

在pycharm中導入早停機的庫時,碰上一個問題 from tensorflow.keras.callbacks import EarlyStopping這一條代碼中,EarlyStopping一直有個紅色波浪線,代表著找不到這個庫,提示未解析啥的。 但是運行是可以運行的,雖然可…

GPT-4o如何重塑AI未來!

如何評價GPT-4o? 簡介:最近,GPT-4o橫空出世。對GPT-4o這一人工智能技術進行評價,包括版本間的對比分析、GPT-4o的技術能力以及個人感受等。 GPT-4o似乎是一個針對GPT-4模型進行優化的版本,它在性能、準確性、資源效率以及安全和…

Anolis OS 8.9安裝Linux 服務器運維管理面板“1Panel”

一、簡介 1.Linux 服務器運維管理面板“1Panel” 使用go語言編寫 2.很多的項目的應用都是采用 docker 技術來實現,這讓 Linux 服務器的運維管理更簡單、更安全。 3.1Panel 采納最新的前端技術,并通過精心設計的UX 交互,為用戶提供更好的用戶…

Linux系統tab鍵無法補齊命令-已解決

在CentOS中,按下tab鍵就可以自動補全,但是在最小化安裝時,沒有安裝自動補全的包,需要安裝一個包才能解決 bash-completion 1.檢查是否安裝tab補齊軟件包(如果是最小化安裝,默認沒有) rpm -q ba…

關于sprintboot3版本以上中的swagger3.0的使用

文章目錄 1.配置pom.xml(添加以下內容,記住點一下右上方maven下載)2.application.properties添加以下配置信息3.新建swagger的config配置信息,文件位置如下4.添加接口注釋信息訪問swagger文檔 1.配置pom.xml(添加以下內容,記住點一下右上方ma…

抽象一個通用的配置沖突解決方案

最近的開發項目中遇到了一個關于配置沖突的解決和產品設計,一直以來都沒有處理好。最近抽空整理了一下思路和設計,并做了抽象,后續的類似使用,可以做到直接復用。 思路和代碼見:github地址:https://github…

spring:解決findMergedRepeatableAnnotations獲取可重復的元注解(meta-annotation)結果不正確問題

spring-core的注解工具提供的方法 AnnotatedElementUtils.findMergedRepeatableAnnotations用于從AnnotatedElement 對象獲取可重復的注解。但如果注解本身也是可以定義在其他注解之上的元注解(meta-annotation),且該注解也是可重復注解。這個方法就可能會失效。這就是我最近在…

基于java18多端展示+ idea hbuilder+ mysql家政預約上門服務系統,源碼交付,支持二次開發

基于java18多端展示 idea hbuilder mysql家政預約上門服務系統,源碼交付,支持二次開發 家政預約上門系統是一種通過互聯網或移動應用平臺,為用戶提供在線預約、下單、支付和評價家政服務的系統。該系統整合了家政服務資源,使用戶能…

RabbitMQ三、springboot整合rabbitmq(消息可靠性、高級特性)

一、springboot整合RabbitMQ(jdk17)(創建兩個項目,一個生產者項目,一個消費者項目) 上面使用原生JAVA操作RabbitMQ較為繁瑣,很多的代碼都是重復書寫的,使用springboot可以簡化代碼的…

Vue3集成Phaser-飛機大戰游戲(設計與源碼)

文章目錄 引言項目初始化游戲設計和結構游戲程序實現Vue頁面嵌入PhaserPreloader 場景加載游戲場景功能實現功能類定義Boom爆炸類Bullet子彈類Enemy敵軍類Player玩家類End游戲結束類 總結 更多相關內容可查看 引言 飛機大戰(也被稱為射擊游戲或空戰游戲&#xff09…

輕松上手MYSQL:優化MySQL慢查詢,讓數據庫起飛

?🌈 個人主頁:danci_ 🔥 系列專欄:《設計模式》《MYSQL應用》 💪🏻 制定明確可量化的目標,堅持默默的做事。 ?歡迎加入探索MYSQL慢查詢之旅? 👋 大家好!我是你們的…

如何優雅簡潔的使用YOLOv8

如何優雅簡潔的使用YOLOv8 目錄訓練調用代碼如何一鍵訓練多個yamlexport模型測試多個yaml是否運行正常predict本文提供了 如何優雅簡潔的使用YOLOv8 ???YOLOv8實戰寶典--星級指南:從入門到精通,您不可錯過的技巧 ??-- 聚焦于YOLO的 最新版本, 對頸部網絡改進、添加局…

Crosslink-NX器件應用連載(11): 圖像(數據)遠程傳輸

作者:Hello,Panda 大家下午好,晚上好。這里分享一個Lattice Crosslink-NX器件實現圖像或數據(衛星數據、雷達數據、ToF傳感器數據等)遠程傳輸的案例(因為所描述的內容頗雜,曬圖不好曬&#xff…

react自用小技巧(持續更新中)

react自用小技巧(持續更新中) 作者:devwolf 導言: 筆者應屆時,投vue2就任一家大食品廠的資訊部后轉成了react,寫了一年出頭的react類組件。然后跳槽到蘇州科技城的一個原做影視渲染的公司開始全面轉hook…

文件批量改后綴名,輕松實現TXT到DOCX格式轉換,高效管理您的文件庫!

文件處理與管理已成為我們日常生活和工作中不可或缺的一環。然而,面對海量的文件,如何高效地進行格式轉換和管理,卻成為了一道難題。今天,我們將為您揭曉一個神奇的解決方案——文件批量改后綴名功能,讓您輕松實現TXT到…

【GPT-4o:開創人工智能新紀元】

GPT-4o:開創人工智能新紀元 最近,GPT-4o問世,再次引發了人們對人工智能技術的關注和討論。這一新型語言模型的出現,不僅在技術上實現了飛躍,也為我們帶來了全新的思考和體驗。接下來,我們將對GPT-4o進行全…

【docker】docker的安裝

如果之前安裝了舊版本的docker我們需要進行卸載: 卸載之前的舊版本 卸載 # 卸載舊版本 sudo apt-get remove docker docker-engine docker.io containerd runc # 卸載歷史版本 apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker…

linux文件共享之samba

1.介紹 Samba是一個開源文件共享服務,可以使linux與windows之間進行文件共享,可以根據不同人員調整共享設置以及權限管理。 2.安裝 一個命令就OK了:yum install -y samba [rootansible01 ~]# yum install -y samba 已加載插件:l…