ToB企服应用市场:ToB评测及商务社交产业平台
标题:
JavaSE基础知识分享(五)
[打印本页]
作者:
写过一篇
时间:
2024-8-12 21:34
标题:
JavaSE基础知识分享(五)
写在前面
前面讲的是面向对象中的继承思想,下面让我们来看看多态这部分的内容!
Java 面向对象概念概述
多态
概述
:某一个事物在不同状态下的多种状态。
实现多态的三大前提
:
要有继承关系。
要有方法的重写。
要有父类的引用指向子类对象。
访问成员的特点
:
成员变量
:编译时看左,运行时看左。
成员方法
:编译时看左,运行时看右。
静态成员方法
:编译时看左,运行时看左。
多态的利益
:
提高了程序的维护性(继承)。
提高了程序的扩展性(多态)。
多态的毛病
:
在多态的形式下,无法利用子类中特有的成员方法。
解决方案
:向下转型(例如,曹操曹植的故事)。
向下转型大概会遇到的问题
:ClassCastException 类转换非常,好比将 Apple 酿成 Banana。
抽象类
概述
:用来描述实际生活中抽象的概念集合。
语法
:利用 abstract 关键字进行修饰。
特点
:
abstract 可以修饰类和成员方法。
一个抽象类中,既可以存在抽象方法,也可以存在具体的实现方法。
当一个类中有抽象方法时,这个类必须是抽象类。
抽象类可以继承抽象类,可以选择性地重写方法。
具体的类继承抽象类时,必须重写所有的抽象方法。
抽象类不能实例化。
抽象类和类一样,子类只能继承一个父类,但可以多层继承。
接口
概述
:主要用来描述事物额外的扩展功能。
关键字
:interface
特点
:
接口中只有常量,所有的变量默认利用 public static final 修饰。
接口中只允许出现抽象方法,所有的方法默认利用 public abstract 修饰。
具体类实现接口利用 implements 关键字。当具体类实现接口时,必须实现接口中所有的抽象方法。
一个类可以同时实现多个不同接口。
接口与接口之间的关系是继承关系,一个接口可以同时继承多个接口。
接口无法实例化。
形式参数和返回值类型的对比
形式参数
:
类
:当看到一个类作为方法参数类型时,调用时需要传递该类及其子类对象。
抽象类
:当看到一个抽象类作为方法参数类型时,调用时需要传递继承该抽象类的具体子类对象。
接口
:当看到一个接口作为方法参数类型时,调用时需要传递实现该接口的具体子类对象。
返回值类型
:
类
:当看到一个类作为方法的返回值类型时,方法内部应返回该类或该类的子类对象。
抽象类
:当看到一个抽象类作为方法的返回值类型时,方法内部应返回继承该抽象类的具体子类对象。
接口
:当看到一个接口作为方法的返回值类型时,方法内部应返回实现了该接口的具体子类对象。
包
包的分别
:
根据功能进行分别。
根据角色进行分别.
导包
:
利用 import。
import 语句在 package 和所有 class 之间写。
权限修饰符
权限修饰符
:
权限修饰符同一类中同一包子类,其他类不同包子类不同包其他类public√√√√protected√√√默认√√private√
总结
:
public:都可以访问。
protected:只能在子类中访问。
默认:只能在包内访问。
private:只能在类中访问。
内部类
成员内部类
:
概述
:将类定义在另一个类的成员位置上。
形式
:
形式 1
:没有利用 static 或 private 关键字修饰。
外部类名.内部类名 对象名 = new 外部类名().new 内部类名();
复制代码
形式 2
:利用 static 关键字修饰。
外部类名.内部类名 对象名 = new 外部类名.内部类名();
复制代码
形式 3
:利用 private 关键字修饰。
只能在类中利用,外界无法访问。
局部内部类
:
概述
:将类定义在方法内部。
特点
:
只能在方法内部利用。
方法定义的局部变量在局部内部类中默认是 final,不能修改。
匿名内部类
:
语法定义格式
:
new 抽象类/接口/类() {
// 重写方法
};
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4