Java繼承的概念和實現
繼承時類和類之間的關係,是一個很簡單很直觀的概念,與顯示生活中的繼承(例如兒子繼承了父親財產)類似。
繼承可以理解為一個類從另一個類中獲取方法和屬性的過程。如果類B繼承於類A,那麼類B就擁有類A的屬性和方法。
繼承使用extends關鍵字。
例如我們定義了一個People:
public class People { public String name;//姓名 public String age;//年齡 public String sex;//屬性 public void msg(){ System.out.println("這個人的姓名為"+this.name+",年齡為"+this.age+",性別為"+this.sex); } }
如果現在還需要定義兩個類,一個是Teacher類,而這個類需要有基本的name,age,sex屬性,還需要增加school,subject,seniority屬性。怎麼辦呢?我們要重新定義一個類嗎?
完全沒必要,可以先繼承People類,然後在增加自己的屬性即可。例如:
public class Teacher extends People { public String school;//教師所在的學校 public String subject;//學科 public int seniority;//教齡 public Teacher(String school, String subject, int seniority) { super(); this.school = school; this.subject = subject; this.seniority = seniority; } public void teacherMsg(){ System.out.println("教師的姓名為"+name+",年齡為"+age+",性別為"+sex+",所在學校為"+school+",所教學科為"+subject+",教齡是"+seniority); } }
其中
- name和age變數雖然沒有在Teacher中定義,但是已經在People中定義,而Teacher繼承了People類,這樣People中的屬性和方法可以直接拿過來用。
- 而Teacher類繼承了People類,稱Teacher是People類的子類,People是Teacher的父類。
- 子類可以覆蓋父類中的方法。
- 子類可以覆蓋父類除private修飾的以外的所有成員。
- 構造方法不能被繼承。
繼承是在維護和可靠性的一個偉大進步,如果在People中進行修改,那麼Teacher類就會自動修改,而不需要手動去修改。
單繼承性:Java允許一個類僅能繼承一個其他類,即一個類只能有一個父類,這個限制被稱為單繼承性,而介面允許多繼承,彌補了Java類只能單繼承的缺陷。
如果一個類沒有顯式的繼承一個父類,那麼這個類的預設父類就是Object類,Object類是所有類的父類。
相關推薦
Java繼承的概念和實現
繼承時類和類之間的關係,是一個很簡單很直觀的概念,與顯示生活中的繼承(例如兒子繼承了父親財產)類似。繼承可以理解為一個類從另一個類中獲取方法和屬性的過程。如果類B繼承於類A,那麼類B就擁有類A的屬性和方法。繼承使用extends關鍵字。例如我們定義了一個People:publ
Java多執行緒的實現(程序與執行緒的概念、Java繼承Thread類實現多執行緒、Java實現Runnable介面實現多執行緒、Thread與Runnable的區別、實現Callable介面實現多執行緒)
1 程序與執行緒 1.1 程序與執行緒的概念 什麼是程序? 程序: 作業系統中一個程式的執行週期。(比如我們想要在電腦上登入QQ,從雙擊qq按鈕---->關閉qq這個過程就是一個程序) 多程序: 同一時刻跑多個程式。 在DOS(磁碟作業系統時
java一個類 繼承HttpServlet 和實現Servlet區別
servlet 是一個介面,如果實現這個介面,那麼就必須實現接口裡面定義的所有方法而HttpServlet實現了servlet介面,並把servlet介面中的方法實現了繼承Httpservelt實際上也就實現了servlet介面,但是我們沒必要再去實現servlet中定義的
Java繼承概述 以及Java繼承案例和繼承的好處
自己 復用 dem void dsd 屬性 關鍵字 相同屬性 pre Java繼承概述 1.多個類中存在相同屬性和行為時,將這些內容抽取到單獨一個類中,那麽多個類無需再定義這些相同屬性和行為,只要繼承那個類即可。 2.在Java中通過extends關鍵字可以實現類與類的繼承
淺談BloomFilter【上】基本概念和實現原理
pty 是否 的人 它的 構建 網絡爬蟲 ace head filters ? ??在日常生活中。包括在設計計算機軟件時,我們常常要推斷一個元素是否在一個集合中。
繼承和派生(1):繼承概念和繼承方式
派生類的定義: 看一個有趣的例子: #include <iostream> using namespace std; class A { public: void f(int i){cout<<i<<endl;}
java繼承派生和多型詳解
繼承 繼承,顧名思義,就是把已經有的拿過來歸為己用,java中的繼承也不例外。 舉個例子,假如現在有這樣一個需求,讓我們寫一個關於狗的Dog類,Dog類中有狗的名字、年齡,還有狗的兩種行為,也就是這個類的兩種方法,分別是run(跑)方法和bark(犬吠)方法,那麼我們就可以這樣寫:
多執行緒兩種實現區別-繼承Thread和實現Runable
一 前面一種比較簡潔。後面一種更靈活,因為java可以實現多個介面,但是隻能繼承一個類 二 適合於資源的共享 如果不涉及 多執行緒直接資源共享用Thread 比較好,否則實現Runable較好 Thread其實也是實現了Runnable介面 Thread中的start(
Python程序池的概念和實現
1 使用程序池實現socket 通訊 ftp服務端 #!/usr/bin/python # -*- coding utf8 -*- from multiprocessing import Process,Pool from socket import * impor
java 繼承 super 和 this 的用法
123456789101112131415161718192021222324252627282930313233343536classPerson { publicstaticvoidprt(String s) { System.out.println(s); } Person() { prt("父類·無引
解決關於Java中介面和實現介面到測試環節中無法使用set方法
package computerPCICard; /** * 建立新的PCICard介面 * @author win-r * */ public interface PCICard {//操作標準 public void start();//啟動方法 publ
棧的概念和實現
棧是應用很廣泛的資料結構,屬於操作“受限”的線性表。 一、棧的基本概念 棧:是限制在表的一端進行插入和刪除操作的線性表。又稱為後進先出LIFO (Last In First Out)或先進後出FILO (First In Last Out)線性表。 棧頂:進行操作的一端,用
Java繼承和多型===Java繼承的概念與實現
繼承是類與類之間的關係,是一個很簡單很直觀的概念,與現實世界中的繼承(例如兒子繼承父親財產)類似。繼承可以理解為一個類從另一個類獲取方法和屬性的過程。如果類B繼承於類A,那麼B就擁有A的方法和屬性。繼承使用 extends 關鍵字。例如我們已經定義了一個類 People:
Java線程演示樣例 - 繼承Thread類和實現Runnable接口
無法 ads rup args dex rom 一個 nts future 進程(Process)和線程(Thread)是程序執行的兩個基本單元。Java並發編程很多其它的是和線程相關。 進程 進程是一個獨立的執行單元,可將其視為一個程序或應用。然而,一
泛型深入--java泛型的繼承和實現、泛型擦除
部分 end father 沒有 接口 子類 set int nal 泛型實現類: package generic; /** * 泛型父類:子類為“富二代”:子類的泛型要比父類多 * 1,保留父類的泛型-->子類為泛型類
java 接口的實現和繼承關系
矩形 有一個 extend bsp 實現接口 string raw 類定義 一定的 一。抽象類 在Java中,通過在class關鍵字前增加abstract修飾符,就可以將一個類定義成抽象類。抽象類不能被實例化。例如: 定義抽象類水果(Fruit)
java——繼承、封裝、多態概念和例子
pub int sta blog ima protect 參考資料 成員方法 order 一、封裝 java是面向對象的語言,為了讓類的內部數據不被隨意的訪問修改,我們會用訪問修飾符對其被訪問權限進行修飾。例如我們經常看見的實體類。裏面的成員變量我們就是用priva
Java中介面、類的繼承和實現小問題
以下這個問題其實是一個很low的問題,但確實很基礎 今天在看JDK原始碼中發現這一行程式碼: public interface BlockingDeque<E> extends BlockingQueue<E>, Deque<E> 奇怪了,
Java類的繼承、介面的繼承和實現
Java的介面有繼承和實現兩個概念,介面可以繼承另一個介面,並獲得其父接口裡的所有方法和成員變數,介面也可以被一個類實現,實現介面的類需要實現介面及其父接口裡的所有抽象方法,怎麼理解呢? (1)如果介面A繼承了介面B,那麼介面A就繼承了介面B的所有抽象方法;
Java(三)併發控制5.繼承建立執行緒和實現建立執行緒之間的區別
這是使用繼承建立的執行緒 class Person extends Thread { private int num=50; public Person(String name) { super(name); } public void run()