類 物件 抽象類 繼承 回顧
1 類的組成
定義類的時候,需要關鍵字:class
在類中可以寫:屬性、方法、構造方法!
構造方法:
1、用於建立物件;(程式設計師在使用關鍵字:new的時候,會自動執行對應的構造方法)
2、在物件建立的過程中給成員變數賦值;
注意:
構造方法可以過載;
2.This關鍵字
This的概念:當前物件的引用;(正在呼叫方法的這個物件)
This主要作用:區分成員變數和區域性變數;
3.匿名物件
沒有名字的物件就是匿名物件;
好處:可以節約一個變數記憶體空間;
缺點:這個物件只能使用一次,且在建立成功的時候必須立刻使用,否則過了這一行就不能再使用了;
注意:
匿名物件可以作為引數,也可以作為返回值使用;
4 繼承
組合概念
一個類(A)的成員變數的位置,擁有了另一個類(B)型的變數,此時A類和B類就是組合關係;
繼承的概念
一個類(A)與另一個類(B)產生了父子關係,就是A繼承了B類;
好處:
子類物件可以直接使用父類非私有的屬性和方法!
(私有的屬性,可以繼承,但是不能直接使用,父類必須提供get與set方法,子類可以通過get與set方法,使用父類的私有的屬性)
弊端:
類與類之間的耦合度高!
繼承的程式碼格式
Java提供了一個關鍵字:extends
Public class 子類 extends 父類{
//屬性。方法。構造方法
5. 方法重寫的概念
在繼承體系中,子類中擁有與父類
(子類中的方法的許可權必須大於或等於父類的許可權,返回值和引數型別必須小於或等於父類的型別)
6 繼承中成員變數訪問的特點
當子父類成員變數中出現了重名的變數的時候,在子類的方法中,會使用子類的成員變數的值;
當子父類成員變數中出現了重名的變數的時候,在父類的方法中,會使用父類的成員變數的值;
7 Super關鍵字
含義:父類物件的引用;代表該關鍵字所在的類的父類物件;
注意事項:super一般寫在子類中;不能寫在static方法中;
在子類中訪問父類的非私有的屬性格式:
Super.屬性名;
在子類中訪問父類的非私有的方法格式:
Super.方法名(引數列表值);
8 This與super關鍵字在構造方法中的使用
構造方法不存在重寫!
構造可以過載;
當構造方法過載的時候,可以使用this關鍵字在其中一個構造方法中呼叫其他的構造方法;(引數多的呼叫引數少的)
This在本類的構造方法中呼叫本類的過載的構造方法的格式:
This(引數值);
在子類的構造方法中可以使用Super(引數值)的形式呼叫父類的構造方法!
注意事項:
1、如果子類的構造方法中,什麼都不寫,預設會自動呼叫父類的空引數的構造方法;
2、如果手動寫上了呼叫本類的構造方法或父類的構造方法,那麼預設的呼叫將自動消失;
3、This()和super()不能同時出現在同一個構造方法中;
4、呼叫其他構造方法的程式碼只能寫在第一行;
5、父類物件一定是優先於子類物件存在!
9 This與super的總結
呼叫屬性:
this.屬性名; 呼叫自己類的成員變數;必須寫在本類中;
Super.屬性名; 呼叫父類的成員變數;必須寫在子類中;
呼叫成員方法:
This.方法名(引數值)或方法名(引數值); 在自己的類中,呼叫自己類的普通方法;
Super.方法名(引數值); 在子類中,呼叫父類的重寫的方法;
呼叫構造方法:
This(引數值); 在自己的構造方法中,呼叫自己類的其他的構造方法;
Super(引數值); 在子類的構造方法中,呼叫父類的指定的構造方法;
10 抽象類的概述
“抽象方法”,屬於一種不完整的方法,只含有一個宣告,沒有方法主體。
使用了關鍵詞abstract宣告的類叫作“抽象類”。如果一個類裡包含了一個或多個抽象方法,類就必須指定成abstract(抽象)。
簡單記:包含抽象方法的類一定是抽象類;
抽象類中可以沒有抽象方法;
Java提供了一個關鍵字表示抽象的含義:abstract
抽象方法的格式:
Public abstract 返回值型別 方法名(引數列表);
抽象類的格式:
Public abstract class 類名{
屬性
構造方法
成員方法
抽象方法
11 關於抽象類的總結
1、抽象類不能直接建立物件;(不能new)
2、子類必須重寫父類的所有的抽象方法,否則子類也只能是抽象類;
3、抽象類一定是父類嗎? 是!是不斷向上抽取而來的!
4、設計時由具體類抽取出抽象類,而開發階段應該先定義抽象父類,再根據不同需求由父類定義子類。
5、抽象類中可以沒有抽象方法;
相關推薦
類 物件 抽象類 繼承 回顧
1 類的組成 定義類的時候,需要關鍵字:class 在類中可以寫:屬性、方法、構造方法! 構造方法: 1、用於建立物件;(程式設計師在使用關鍵字:new的時候,會自動執行對應的構造方法) 2、在物件
python開發面向對象基礎:接口類&抽象類&多態&多繼承
規範 函數 實現繼承 兩種 內置 依賴倒置原則 順序 兩個 歸一化 一,接口類 繼承有兩種用途: 一:繼承基類的方法,並且做出自己的改變或者擴展(代碼重用) 二:聲明某個子類兼容於某基類,定義一個接口類Interface,接口類中定義了一些接口名(就是函數名)且並未實現
【Java篇03】具體類 & 抽象類 & 介面 —— 繼承extends & 實現Implement小結
一、具體類 & 抽象類 $ 介面 從組成上來看: 具體類包含:屬性、構造器、具體方法、初始化塊(靜態語句塊static{ } 、動態語句塊{ })、內部類 ; 抽象類包含:屬性、構造器、具體方法、抽象方法(需要用public abstract修飾); 介面包含:屬性、抽象方法(一
重走Java基礎:面向物件-抽象類(abstract)
抽象類,什麼是抽象類? 1. 抽象類的產生 當編寫一個類時,我們往往會為該類定義一些方法,這些方法是用來描述該類的功能具體實現方式,那麼這些方法都有具體的方法體。 但是有的時候,某個父類只是知道子類應該包含怎麼樣的方法,但是無法準確知道子類如何實現這些方法。比如一個圖形類應該有一
PHP學習——28 PHP面向物件(抽象類與抽象方法、介面的實現)
一、抽象類與抽象方法 <?php // 任何一個類,如果它裡面至少有一個方法是被宣告為抽象的,那麼這個類就必須被宣告為抽象的。 abstract class Person // 定義為抽象的類不能被例項化。 { public $name; public function __co
java:面向物件-抽象類練習①
package Tets09; public class Demo_Animal { public static void main(String[]args){ Cat c=
java面向物件——抽象類與介面
1. 抽象類 抽象類就是指具有抽象方法並且使用abstract關鍵字修飾的類。 抽象類不能例項化物件,否則編譯出錯 抽象類中可以有成員變數,成員方法以及構造方法 抽象類中可以有抽象方法也可以沒有,但定義了抽象方法就必須是抽象類 抽象類的作用 抽象類的意義不在於
12.類、抽象類、匿名類、內部類、繼承、介面、泛型
類、抽象類、匿名類、內部類、繼承、介面、泛型1.獲得一個類的類物件有哪些方式2.過載(Overload)和重寫(Override)的區別。過載的方法能否根據返回型別進行區分?3.說出幾條 Java 中方法過載的最佳實踐4.抽象類和介面的區別5.抽象類中是否可以有靜態的main
面向物件-抽象類
抽象類:只能被繼承,不能被例項化。作用於繼承介面。 import abc # class Animal(metaclass=abc.ABCMeta): # 這個是 抽象類((只能被繼承,不能被例項化)) @abc.abstractmethod # def run(self):
iOS 類的抽象和繼承:類族與工廠模式~詳解
//聯絡人:石虎 QQ: 1224614774暱稱:嗡嘛呢叭咪哄 一、Objective-C類族和工廠模式 /** 連結http://blog.csdn.net/sh
java面向物件 抽象類
1.當編寫一個類時,我們往往會為該類定義一些方法,這些方法是用來描述該類的功能具體實現方式, 那麼這些方法都有具體的方法體。 但是有的時候,某個父類只是知道子類應該包含怎麼樣的方法,但是無法準確知道子類如何實現這 些方法。比如一個圖形類應該有一個求周長的方法,但是不同的圖形求周長的演算法不一樣
java中super父類物件引用_繼承樹追溯問題
super是直接父類物件的引用,可以通過super來訪問父類中被子類覆蓋的方法或屬性。 案例小程式碼: package com.jackfujia.oo2; public class TestSuper { public static void main(S
總結:介面、類、抽象類、繼承、建構函式、方法重寫、方法過載、自動轉型、多型、引用傳遞
介面: 格式: 訪問許可權 interface 類名 { } 特點:1.介面中的方法必須都是抽象方法(abstract修飾符可以省略) 2.屬性必須都是常量(static final修飾符可以省略) 3.不能直接建立物件 類:分為普通類和抽
Java面向物件——抽象類
在解決實際問題中,常常將被繼承的父類定義為抽象類,其功能都由各個子類去實現; 定義:在java中,含有抽象方法的類稱為抽象類,同樣不能生成物件; 注意點: 1,包含一個抽象方法的類是抽象類; 2,抽象類和抽象方法都要用abstract關鍵字修飾; 3,抽象方法只
JAVA 特征以及基本類、抽象類、接口
抽象 類的繼承 網站 {} 類的定義 關鍵字 說明 實現 string Java是一個面向對象的語言,java面向對象一般有三大特征:封裝、繼承、多態。 封裝:就是把一些屬性和方法封裝到一個類裏。 繼承:就如子類繼承父類的一些屬性和方法。 多態:就如一個父類
python編程設計模式之接口類和抽象類
支持 不能 進行 eth bstr 單繼承 += 就會 imp 接口類 """ 接口類 是一種編程設計模式,在python原本沒有接口類 借用Java思想創建的一種規範設計模式 支持多繼承,進行多方面規範 """ 例子: fr
對php的接口類與抽象類的理解
代碼復用 bst ID lang 是什麽 提供服務 truct 參數 lock php 接口類:interface 使用接口(interface),可以指定某個類必須實現哪些方法,但不需要定義這些方法的具體內容。 接口是通過 interface 關鍵字來定義的,就像定義
day_21(接口類,抽象類,封裝)
name 功能 oldboy 放置 password rop 鴨子類型 不同 復雜 class Payment: # 抽象類,或者接口類:制定一個規範. def pay(self):pass class QQ(Payment): def pay(se
java介面、介面、類、抽象類的區別
1、定義 Java介面是一系列方法的宣告,是一些方法特徵的集合,一個介面只有方法的特徵沒有方法的實現,因此這些方法可以在不同的地方被不同的類實現,而這些實現可以具有不同的行為(功能)。 2、Java介面與介面區別
python學習筆記(31) 介面類和抽象類
from abc import abstractmethod.ABCmeta class Payment(mataclass = ABCmeta): #元類 預設的元類 type @abstractmethod def pay(self,money):pass 介面類或者抽象類都是為了規範子