JAVA 程式設計與資料結構 第七章 繼承與Interface.

Slides:



Advertisements
Similar presentations
第四章 类、对象和接口.
Advertisements

第三讲 面向对象(上).
3.2 Java的类 Java 类库的概念 语言规则——程序的书写规范 Java语言 类库——已有的有特定功能的Java程序模块
JAVA 编 程 技 术 主编 贾振华 2010年1月.
第一單元 建立java 程式.
项目6 通用堆栈.
面向对象的程序设计(一).
第一章 面向对象程序设计.
第二章 JAVA语言基础.
類別的繼承-一般關係: 繼承是宣告的類別繼承現存類別的部份或全部的成員資料和方法 , 新增額外的成員資料和方法或覆寫和隱藏繼承類別的方法
第7单元 面向过程编程—— 继承与多态.
Ch07 介面與多重繼承 物件導向程式設計(II).
JAVA程序设计 (03) JAVA Programming
第5章 进一步讨论对象和类.
第5章 Java中类、对象、接口 及包的概念 5.1 类的基本概念 5.2 类的继承概念 5.3 抽象类和接口 5.4 包.
Ch08 巢狀類別 物件導向程式設計(II).
2.1 基本資料型別 2.2 變數 2.3 運算式與運算子 2.4 輸出與輸入資料 2.5 資料型別轉換 2.6 實例
第5章 面向对象程序设计 本章要点 5.1 面向对象程序设计概述 5.2 Java语言的面向对象程序设计 5.3 方法的使用和对象数组
Classes Lecturer: 曾學文.
CHAPTER 9 建構方法 ROBERT.
第六章 类的扩展与继承.
本單元介紹何謂變數,及說明變數的宣告方式。
西南科技大学网络教育系列课程 高级语程序设计(Java) 第五章 继承、接口与范型.
Ch10 類別與物件-方法 Java程式設計(2).
Java软件设计基础 5. 继承与多态.
2018/12/3 面向对象与多线程综合实验-网络编程 教师:段鹏飞.
類別(class) 類別class與物件object.
Java程序设计 第9章 继承和多态.
王豐緒 銘傳大學資訊工程學系 問題:JAVA 物件檔輸出入.
Ch01 物件與類別複習 物件導向系統實務.
辅导课程十三.
類別的繼承 Vehicle Car.
SPOTO TM JAVA课程 JAVA中的OO语法
中国矿大计算机学院杨东平 第5章 接口和包 中国矿大计算机学院杨东平
并发机制 结果应该为: 线程 1: 1 线程 1: 2 线程 1: 3 线程 1: 4 线程 1: 5 线程 2: 6 线程 2: 7
3.1 数据类型 3.2 标识符与关键字 3.3 常量 3.4 变量 3.5 运算符与表达式 3.6 一个编程实例
第9讲 Java的继承与多态(一) 类的继承 子类的创建 方法覆盖.
Java 程式設計 講師:FrankLin.
2019/1/16 Java语言程序设计-类与对象 教师:段鹏飞.
JAVA 程式設計與資料結構 第四章 陣列、字串與數學物件.
Php class 組員: 賴羿陵 林昱廷 莊正暉 張雅晴
Java程序设计 第2章 基本数据类型及操作.
C/C++/Java 哪些值不是头等程序对象
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
第六章 属性、索引器、委托和事件.
第一單元 建立java 程式.
* 單元:電腦與問題解決 主題:Java物件導向程式設計-類別與物件 台南縣國立善化高中 蕭嘉民 老師
简单工厂模式.
辅导课程八.
JAVA 编 程 技 术 主编 贾振华 2010年1月.
第 19 章 XML記憶體執行模式.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
Class & Object 靜宜大學資工系 蔡奇偉副教授 ©2011.
Interfaces and Packages
第二章 Java语法基础.

第二章 Java基本语法 讲师:复凡.
方法進階及物件導向基礎 Lecturer: 楊昌樺.
進階UI元件:ListView元件以及複選 靜宜大學資管系 楊子青
第6單元 6-1 類別的繼承 (Class Inheritance) 6-2 抽象類別 (Abstract Class)
辅导课程十二.
JAVA 程式設計與資料結構 第三章 物件的設計.
第2章 Java语言基础.
What is “this”? 在物件導向程式設計中,類別的定義就是在說明如果創建了“這個物件”的話,它會具有那些屬性與功能,以及這些功能是如何實現的。 而所謂的“這個物件”就以 this 來表示。 當我們在JavaScript與jQuery中寫 script 程式(函式)時,“誰”呼叫這個函式,這個“誰”就是該函式中所謂的.
第4讲 类和对象、异常处理 ggao.
對於成員(member)存取權的限制 成員的資料被毫無限制的存取,任誰都可以指定任意值給成員,Java語言為了防止這種現象的產生,規定:有一種成員的資料不能任由類別外部的任何人隨意存取。
第二章 Java基础语法 北京传智播客教育
第6章 继承和多态 伍孝金
Summary
方法(Method) 函數.
Presentation transcript:

JAVA 程式設計與資料結構 第七章 繼承與Interface

繼承 一個class可以承繼另一個class,被繼承的class稱為super class,繼承的class 稱為subclass。用關鍵字extends來修飾。 繼承的物件擁有被繼承物件的所有變數以及方法,除非繼承的物件設計新的方法覆蓋過被繼承物件中的方法。

繼承自class Employee,使用關鍵字extends super代表被繼承的物件,也就是Employee 繼承範例 class OfficeEmployee extends Employee {   double weight; double height; OfficeEmployee (String s, int i) { super(s, i); } // Constructor 繼承自class Employee,使用關鍵字extends super代表被繼承的物件,也就是Employee

Overriding 如果在子類別裡宣告跟父類別相同的方法(擁有相同的變數),那麼在子類別裡的方法將會覆蓋過父類別的方法,稱為overriding。 也就是說如果繼承的class內擁有與被繼承的class中同名的method,則以繼承的class中所定義的為準。

Abstract 有時候當我們設計一個class,它並沒有被instantiated的必要,也就是說我們不會new一個這樣的物件,這個時候我們可以將其設計為abstract。 被定義為abstract的class不能被instantiated,也就是說無法使用new關鍵字來建立一個instance,但是此class可以被繼承。 被abstract修飾的方法無須有內容,必須在繼承的class中定義。

Abstract修飾的方法,在繼承的class中定義其用法。 範例 abstract class Student{   String name; String ID; int grade; public Student() { } // Constructor    abstract public void computeGrade(int extra); public String getID() { return ID; }//getID() }// Student Abstract修飾的方法,在繼承的class中定義其用法。

Interface及多重繼承 在Interface中可以宣告abstract的方法(method)及常數(constant),而讓其它的class來安裝這些方法。 但是Interface僅提供方法的宣告部分,並不提供實現(implements)的部分,因此Interface純為設計的用途,不像class除了提供方法(method)的宣告之外,也可以實現(inplements),因此同時具有設計及實現的功能。 Interface間也可以相互繼承。

此class實現AreaInterface,必須完成其中所定義的方法,因為楮瑥牦慣e中定義的方法視為abstract修飾的方法。 Implements 此interface中定義兩個方法,其純粹只是一個想法。 public interface AreaInterface{   double area(); // 面積 double circ(); // 週長 }//AreaInterface 此class實現AreaInterface,必須完成其中所定義的方法,因為楮瑥牦慣e中定義的方法視為abstract修飾的方法。 class SquareAreaImplements implements AreaInterface{   double w, h; SquareAreaImplements (double w, double h) { this.w = w; this.h = h; }//Constructor public double area() {return w*h;} public double circ() {return 2*(w+h);} }// SquareAreaImplements

Class C extends classA implements interfaceB 多重繼承 Class A Interface B extends implements Class C extends classA implements interfaceB