(OOP技术)继承与接口---相同的概念?---(CSS技术)样式标签与样式类?

时间:2013-03-07 08:22:52

标签: css oop inheritance interface multiple-inheritance

原谅那个疯狂的头衔......

我试图在面向对象编程中理解继承与接口的概念。所以我试图将它与我已经知道的东西联系起来,这就是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)?或者我有完全错误的想法。

2 个答案:

答案 0 :(得分:1)

简短回答:你有完全错误的想法。 绝对没有办法可以使用CSS解释OOP继承/接口。

继承和接口是编程概念(非常基本的设计模式),而CSS不是编程语言(不是完整的)。

有许多非常容易理解的在线教程/文章,可以让您对这两个概念有一个很好的理解。我建议你阅读它们。

编辑:嗯,在第二个想法,也许,也许,只是也许,继承可以使用CSS解释。就像样式属性在CSS中级联一样,类方法和属性“级联”到派生类。但是,阅读介绍性教程比尝试通过CSS理解这些概念要好得多。

答案 1 :(得分:1)

如果将OOP与CSS进行比较,您会发现可以将接口与样式进行比较,但CSS中没有类似继承的内容。

OOP中的接口非常适用于将类应用于元素。与向元素添加多个类以组合不同外观的方式相同,可以向类中添加多个接口以组合不同的行为。

如果你在CSS中有继承,那就是这样的:

.main-links { color: red; }

.info-links { @inherits: .main-links; font-weight: bold; }

此处有一条规则会继承另一条规则,因此您只能将类info-links应用于元素,以获取main-links的实现。

(当然这在CSS中不起作用,因为规则没有名称而是选择器,并且选择器甚至不必是唯一的,因此它们不能用于识别规则。)< / p>