原谅那个疯狂的标题..。
我试图理解面向对象编程中继承和接口的概念。所以我试着把它和我已经知道的东西联系起来,那就是CSS。
在CSS中,您可以选择在允许元素“继承”样式的层次结构中设置样式:
(比如OOP中的继承?)
a { color:red; text-decoration:underline; }
p { background:black; color:white; padding:20px; }
img { background:silver; padding:2px; } 或者,使用.class的样式(这是一个更好的实践):
.main-links { color:red; text-decoration:underline; }
.main-paragraphs { background:black; color:white; padding:20px; }
.main-images { background:silver; padding:2px; } (比如OOP中的接口?)
我的问题是:
在CSS中,这一概念是否类似于继承与接口(对于OOP)?还是我有完全错误的想法。
发布于 2013-03-07 08:28:57
简短的回答:你的完全错了的想法。是绝对不可能的,您可以使用向您解释OOP继承/接口。
继承和接口是编程概念(非常基本的设计模式),而CSS不是编程语言(不是图灵完整的)。
有很多非常容易遵循的在线教程/文章,这将使您对这两个概念有一个很好的理解。我建议你读一读。
编辑:嗯,再想一想,也许,只是可能,继承可以用CSS来解释。就像CSS中的样式属性一样,类方法和属性“级联”到派生类。但是,阅读入门教程比尝试通过CSS理解这些概念要好得多。
发布于 2013-03-07 08:52:27
如果您将OOP与CSS进行比较,您将发现可以将接口与样式进行比较,但CSS中没有什么比继承更好。
OOP中的接口就像将类应用于元素一样。就像您可以向元素中添加几个类以组合不同的外观一样,您也可以向类中添加几个接口来组合不同的行为。
如果您在CSS中具有继承,则如下所示:
.main-links { color: red; }
.info-links { @inherits: .main-links; font-weight: bold; }在这里,一条规则将继承另一条规则,因此您只能将类info-links应用于一个元素,以获得main-links的实现。
(当然,这在CSS中是行不通的,因为规则没有名称,但有选择器,而且选择器甚至不必是唯一的,因此它们不能用于标识规则。)
https://stackoverflow.com/questions/15266286
复制相似问题