【问题标题】:how to force a child class to use a method from the parent class如何强制子类使用父类中的方法
【发布时间】:2012-03-08 17:57:15
【问题描述】:

我有一个类使用所有子类都需要使用的方法。如何强制所有子类使用该方法?抛出接口?

编辑:我正在使用 php。我的意思是: 我有一个名为 toLower() 的方法,我有一个数据库,其中所有列都是大写的,每次从数据库中获取对象时,我都需要使用 toLower() 方法将对象属性设为小写。我希望能够强制客户端用户在获取结果时使用该方法。

【问题讨论】:

  • “强制”是什么意思?子类必须不能覆盖某个方法吗?
  • 抛出接口是什么意思?
  • 您没有提到您使用的是哪种语言 - 如果没有上下文,您的问题没有多大意义,请澄清。
  • 您的问题不清楚,但我认为在您的数据库上使用存储过程将适合您的答案。请参阅此处了解如何在 SQL 中小写:brettb.com/SQL_Help_Change_Lower_Upper_Case.asp

标签: php oop inheritance interface object-oriented-analysis


【解决方案1】:

当您使用 PDO 与数据库交互时,您可以使用 PDO::ATTR_CASE 将列名强制为 PDO::CASE_* 常量指定的特定大小写,例如

$db = new PDO('mysql:host=localhost;dbname=test', $user, $pass, array(
    PDO::ATTR_CASE => PDO::CASE_LOWER
));

如果您出于某种原因想在映射层中执行此操作,只需使用

在将列映射到对象之前返回的行:

$row = array_change_key_case($row, CASE_LOWER);

对于剩下的问题部分,不知道该怎么回答。如需更好的答案,请更新您的问题并显示相关代码位。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-18
    • 2023-04-06
    • 1970-01-01
    • 2018-03-18
    • 2012-05-24
    • 2014-08-24
    • 1970-01-01
    • 2010-12-18
    相关资源
    最近更新 更多