1. 程式人生 > >類 物件 抽象類 繼承 回顧

類 物件 抽象類 繼承 回顧

1 類的組成

定義類的時候,需要關鍵字:class

在類中可以寫:屬性、方法、構造方法!

構造方法:

1、用於建立物件;(程式設計師在使用關鍵字:new的時候,會自動執行對應的構造方法)

2、在物件建立的過程中給成員變數賦值;

注意:

構造方法可以過載;

2.This關鍵字

This的概念:當前物件的引用;(正在呼叫方法的這個物件)

This主要作用:區分成員變數和區域性變數;

3.匿名物件

沒有名字的物件就是匿名物件;

好處:可以節約一個變數記憶體空間;

缺點:這個物件只能使用一次,且在建立成功的時候必須立刻使用,否則過了這一行就不能再使用了;

注意:

匿名物件可以作為引數,也可以作為返回值使用;

4 繼承

 組合概念

一個類(A)的成員變數的位置,擁有了另一個類(B)型的變數,此時A類和B類就是組合關係;

繼承的概念

一個類(A)與另一個類(B)產生了父子關係,就是A繼承了B類;

好處:

子類物件可以直接使用父類非私有的屬性和方法!

(私有的屬性,可以繼承,但是不能直接使用,父類必須提供getset方法,子類可以通過getset方法,使用父類的私有的屬性)

弊端:

類與類之間的耦合度高!

繼承的程式碼格式

Java提供了一個關鍵字:extends

Public class 子類 extends 父類{

//屬性。方法。構造方法

5. 方法重寫的概念

在繼承體系中,子類中擁有與父類

一模一樣的方法,叫做重寫;

(子類中的方法的許可權必須大於或等於父類的許可權,返回值和引數型別必須小於或等於父類的型別)


6 繼承中成員變數訪問的特點

當子父類成員變數中出現了重名的變數的時候,在子類的方法中,會使用子類的成員變數的值;

當子父類成員變數中出現了重名的變數的時候,在父類的方法中,會使用父類的成員變數的值;

7 Super關鍵字

含義:父類物件的引用;代表該關鍵字所在的類的父類物件;

注意事項:super一般寫在子類中;不能寫在static方法中;

在子類中訪問父類的非私有的屬性格式:

Super.屬性名;

在子類中訪問父類的非私有的方法格式:

Super.方法名(引數列表值);

Thissuper關鍵字在構造方法中的使用

構造方法不存在重寫

構造可以過載;

當構造方法過載的時候,可以使用this關鍵字在其中一個構造方法中呼叫其他的構造方法;(引數多的呼叫引數少的)

This在本類的構造方法中呼叫本類的過載的構造方法的格式:

This(引數值)

在子類的構造方法中可以使用Super(引數值)的形式呼叫父類的構造方法!

注意事項:

1、如果子類的構造方法中,什麼都不寫,預設會自動呼叫父類的空引數的構造方法;

2、如果手動寫上了呼叫本類的構造方法或父類的構造方法,那麼預設的呼叫將自動消失;

3、This()super()不能同時出現在同一個構造方法中;

4、呼叫其他構造方法的程式碼只能寫在第一行;

5、父類物件一定是優先於子類物件存在!

Thissuper的總結

呼叫屬性:

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 介面類或者抽象類都是為了規範子