您的位置:58编程 > 继承的工作方式 6-3. 继承的工作细节

继承的工作方式 6-3. 继承的工作细节

2023-03-15 11:33 Sass教程

继承的工作方式 6-3. 继承的工作细节

继承的工作方式

继承是一种面向对象编程的基本概念,它允许一个类从另一个类中继承属性和方法。这样,子类就可以从超类中获得所有的功能,而不必重新定义它们。

在面向对象的语言中,通常使用“extends”关键字来表明一个类是另一个类的子类。例如,如果你想要创建一个新的子类(例如“Dog”),你可以使用“extends Animal”来表明它是Animal的子类。这意味着Dog将会从Animal中获得所有的属性和方法。

当你创建一个新的子类时,你可以选择覆盖或重写超类中已存在的方法。这意味着你可以使用相同的方法名来定义新方法,并覆盖原始方法。这样就可以在不改变原始代码的情况下修改或更新功能。

class Animal { 
    public void move() { 
        System.out.println("Animals can move"); 
    } 
} 
  
class Dog extends Animal { 

    @Override  // 覆盖了Animal中move()方法 
    public void move() {  
        System.out.println("Dogs can walk and run");  
    } 

    public void bark() {   // 添加了bark()方法  
        System.out.println("Dogs can bark");  
    }  

 } 

6-3. 继承的工作细节

跟变量和混合器不同,继承不是仅仅用css样式替换@extend处的代码那么简单。为了不让你对生成的css感觉奇怪,对这背后的工作原理有一定了解是非常重要的。

@extend背后最基本的想法是,如果.seriousError @extend .error, 那么样式表中的任何一处.error都用.error.seriousError这一选择器组进行替换。这就意味着相关样式会如预期那样应用到.error.seriousError。当.error出现在复杂的选择器中,比如说h1.error.error a或者#main .sidebar input.error[type="text"],那情况就变得复杂多了,但是不用担心,sass已经为你考虑到了这些。

关于@extend有两个要点你应该知道。

  • 跟混合器相比,继承生成的css代码相对更少。因为继承仅仅是重复选择器,而不会重复属性,所以使用继承往往比混合器生成的css体积更小。如果你非常关心你站点的速度,请牢记这一点。
  • 继承遵从css层叠的规则。当两个不同的css规则应用到同一个html元素上时,并且这两个不同的css规则对同一属性的修饰存在不同的值,css层叠规则会决定应用哪个样式。相当直观:通常权重更高的选择器胜出,如果权重相同,定义在后边的规则胜出。

混合器本身不会引起css层叠的问题,因为混合器把样式直接放到了css规则中,而继承存在样式层叠的问题。被继承的样式会保持原有定义位置和选择器权重不变。通常来说这并不会引起什么问题,但是知道这点总没有坏处。

阅读全文
以上是58编程为你收集整理的继承的工作方式 6-3. 继承的工作细节全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 58编程 58biancheng.com 版权所有 联系我们
桂ICP备12005667号-32 Powered by CMS