第8章 面向对象高级特性2

更新时间:2023-05-13 06:36:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

java面向对象课程设计,教学资料

教学目的及要求理解: 理解:final变量、方法、类的功能; final变量、方法、类的功能; 变量 抽象类与接口的区别。 抽象类与接口的区别。

掌握: 掌握:final关键字的使用; final关键字的使用; 关键字的使用 引用数据类型的转换; 引用数据类型的转换; hashCode()、toString()、quals()方法的使用 方法的使用。 hashCode()、toString()、quals()方法的使用。

java面向对象课程设计,教学资料

第8章 面向对象高级特性final关键字 8.4 final关键字final变量 8.4.1 final变量 final方法 8.4.2 final方法 8.4.3 final类 final类

抽象类( class) 8.5 抽象类(Abstract class)8.5.1 抽象类和抽象方法的概念 8.5.2 抽象类的规则 8.5.3 抽象类的进一步分析

java面向对象课程设计,教学资料

第8章 面向对象高级特性接口(interface) 8.6 接口(interface)8.6.1 8.6.2 8.6.3 8.6.4 接口的含义 接口的规则 接口和类的关系 接口的进一步分析

java面向对象课程设计,教学资料

第8章 面向对象高级特性8.7 引用数据类型的转换8.7.1 8.7.2 8.7.3 8.7.4 上溯造型 下溯造型 instanceof运算符 instanceof运算符 所有类的父类Object 所有类的父类Object

多态(Polymorphism) 8.8 多态(Polymorphism)

java面向对象课程设计,教学资料

作业用抽象类实现计算圆(circle)、等边三角 用抽象类实现计算圆(circle)、等边三角 )、 triangle)、矩形(rectangle) )、矩形 形(triangle)、矩形(rectangle)对象的 周长与面积。在主类main()方法中顺次创 main() 周长与面积。在主类main()方法中顺次创 类图形对象并显示各个对象的信息。 建3类图形对象并显示各个对象的信息。

java面向对象课程设计,教学资料

final变量 8.4.1 final变量功能:final修饰变量后, 功能:final修饰变量后,变量一旦赋值就不 修饰变量后 可改变。 可改变。 final可修饰的变量包括 属性变量、 可修饰的变量包括: final可修饰的变量包括:属性变量、局部变 量、形式参数 注意final修饰的变量初始化一般和定义同时进行 修饰的变量初始化一般和定义同时进行; 用final修饰的变量初始化一般和定义同时进行; final修饰的变量应遵守常量命名的规范 修饰的变量应遵守常量命名的规范, 以final修饰的变量应遵守常量命名的规范,即 所有字母大写,单词间使用下划线。 所有字母大写,单词间使用下划线。

java面向对象课程设计,教学资料

public class FinalVar { final int y=100; public static void main(String[] args) { final int z=0; } add(final public static void add(final int x) { x++; } }

java面向对象课程设计,教学资料

final方法 8.4.2 final方法功能:final修饰方法后, 功能:final修饰方法后,该方法不能被子类 修饰方法后 覆盖。 覆盖。

java面向对象课程设计,教学资料

class FinalDemo { public final void add(int x) { x++; } } public class SubFinalDemo extends FinalDemo { public void add(int x) { x+=2; } }

java面向对象课程设计,教学资料

final类 8.4.3 final类功能:final修饰的类不能被继承, 功能:final修饰的类不能被继承,

不能产生 修饰的类不能被继承 子类,其方法也不能被覆盖。 子类,其方法也不能被覆盖。 注意: 注意:如果一个类的所有成员要素均被声明 final类型 则该类也就成为一个final 类型, final类 为final类型,则该类也就成为一个final类; 一个类一旦被声明为final final, 一个类一旦被声明为final,则它的所有成员 方法自动成为final方法, final方法 方法自动成为final方法,不管这些方法自身 是否声明为final final。 是否声明为final。

java面向对象课程设计,教学资料

final class FinalDemo { public void add(int x) { x++; } } public class SubFinalDemo extends FinalDemo { public void add(int x) { x+=2; } }

java面向对象课程设计,教学资料

1、抽象类抽象类:就是不能使用new关键字进行实例化 抽象类:就是不能使用new关键字进行实例化 new 的类,即没有具体实例对象的类。 的类,即没有具体实例对象的类。抽象类通 常不具备实际功能,不能创建对象, 常不具备实际功能,不能创建对象,只作为 专门用来派生其他子类的基类。 专门用来派生其他子类的基类。 定义抽象类的目的: 定义抽象类的目的:为子类提供公共信息与 接口。 接口。

java面向对象课程设计,教学资料

1、抽象类定义格式 类的修饰符] <类名 类名> [类的修饰符] abstract class <类名> { …… //成员变量声明 //成员变量声明 …… //非抽象方法声明 //非抽象方法声明 …… //抽象方法声明 //抽象方法声明 }

java面向对象课程设计,教学资料

2、抽象方法抽象方法:是一种不完整的方法, 抽象方法:是一种不完整的方法,它只包含 有方法声明,而无方法体的定义, 有方法声明,而无方法体的定义,因而抽象 方法是只有方法原型而无功能实现的一种行 为规范。 为规范。 定义抽象方法的目的: 定义抽象方法的目的:为所在类的子类声明 方法的接口标准。 方法的接口标准。

java面向对象课程设计,教学资料

2、抽象方法定义格式: 定义格式:返回类型> <方法名>([参 方法名>([ [方法修饰符] abstract <返回类型> <方法名>([参 方法修饰符] 数列表]) ]); 数列表]);

注意:必须使用关键字abstract, 注意:必须使用关键字abstract,没有方法 abstract 以分号结束。 体,以分号结束。

java面向对象课程设计,教学资料

public abstract class Shape { double area; double per; String color; public Shape(){} public Shape(String color) { this.color=color; } public String getColor() { return color; } public abstract double getArea(); public abstract double getPer(); public abstract void showAll();

}

//抽象方法 //抽象方法 //抽象方法 //抽象方法 //抽象方法 //抽象方法

java面向对象课程设计,教学资料

1、抽象类的规则抽象类不能创建对象, 抽象类不能创建对象,创建对象的工作由抽 象类派生的非抽象子类来实现。 象类派生的非抽象子类来实现。 抽象类通常包含若干个(可为零个)抽象方法, 抽象类通常包含若干个(可为零个)抽象方法, 但

不能在非抽象类中声明抽象方法。 但不能在非抽象类中声明抽象方法。 抽象类可以包含非抽象类所能包含的任何元 这些要素包含具体的属性、 素,这些要素包含具体的属性、非抽象方法 以及多个重载的构造方法。 以及多个重载的构造方法。

java面向对象课程设计,教学资料

1、抽象类的规则抽象类中不可包含抽象构造方法或抽象静态 方法。 方法。 若一个类中包含了至少一个抽象方法, 若一个类中包含了至少一个抽象方法,则该 类必须被声明为抽象类; 类必须被声明为抽象类;但声明为抽象类的 类不一定要包含抽象方法。 类不一定要包含抽象方法。 抽象类中可以没有抽象方法, 抽象类中可以没有抽象方法,有抽象方法的 类一定是抽象类。 类一定是抽象类。 抽象类必须被子类继承, 抽象类必须被子类继承,并由子类实现它的 所有抽象方法。 所有抽象方法。

java面向对象课程设计,教学资料

1、抽象类的规则没有所谓的最终抽象类,即抽象类不能再用final 没有所谓的最终抽象类,即抽象类不能再用final 修饰类声明。 修饰类声明。 若一个子类继承了一个抽象类, 若一个子类继承了一个抽象类,该子类没有实现抽 象类中定义的每一个抽象方法, 象类中定义的每一个抽象方法,则该类仍然为抽象 必须在它的类定义语句中加上abstract abstract抽象修 类,必须在它的类定义语句中加上abstract抽象修 饰符。 饰符。直到某个子类实现了它所有祖先类声明的抽 象方法,该类才不再是抽象类, 象方法,该类才不再是抽象类,才能够生成实例对 象。 抽象类中不能定义private private类型的成员变量和成员 抽象类中不能定义private类型的成员变量和成员 方法。 方法。

java面向对象课程设计,教学资料

2、抽象方法的规则抽象方法只需方法头的声明,无需实现方法体。 抽象方法只需方法头的声明,无需实现方法体。 所有的抽象方法,都必须定义于抽象类中。 所有的抽象方法,都必须定义于抽象类中。只有抽 象类才能具有抽象方法。 象类才能具有抽象方法。 如果一个类中含有抽象方法, 如果一个类中含有抽象方法,则必须将这个类声明 为抽象类。 为抽象类。 absteact不能与private、static、final并列修饰 不能与private absteact不能与private、static、final并列修饰 同一个方法,即标明为private static、final类 private、 同一个方法,即标明为private、static、final类 型的方法不能再声明为抽象的。 型的方法不能再声明为抽象的。

java面向对象课程设计,教学资料

2、抽象方法的规则抽象方法最后的分号不能省略, 抽象方法最后的分号不能省略,分号用来代替方法 体的定义。 体的定义。 如果父类中已有同名的抽象方法, 如果父类中已有同名的抽象方法,则子类中就不能 声明同名的抽象方

法。 声明同名的抽象方法。抽象方法的真正实现由所在 抽象类的不同子类在各自的类定义中完成。 抽象类的不同子类在各自的类定义中完成。各子类 将从抽象父类继承来的所有抽象方法进行重写, 将从抽象父类继承来的所有抽象方法进行重写,形 成各自具有相同方法名,相同返回值类型, 成各自具有相同方法名,相同返回值类型,相同参 数列表,目的一致但是具体实现有一定差别的方法。 数列表,目的一致但是具体实现有一定差别的方法。 一个抽象类的子类如果不是抽象类, 一个抽象类的子类如果不是抽象类,则它必须实现 抽象基类中的每一个抽象方法, 抽象基类中的每一个抽象方法,即重写抽象基类中 的所有抽象方法。 的所有抽象方法。

本文来源:https://www.bwwdw.com/article/u5pe.html

Top