精华内容
下载资源
问答
  • 哪些类继承了Collection接口

    千次阅读 2019-08-14 17:30:18
    1、Collection接口...2、 Set接口Set接口继承于Collection接口,它没有提供额外的方法,但实现了Set接口的集合中的元素是无序且不可重复。特征:无序且不可重复。 3、 List接口List接口同样也继承于Colle...

    1、Collection接口Collection是最基本集合接口,它定义了一组允许重复的对象。Collection接口派生了两个子接口Set和List,分别定义了两种不同的存储方式,如下:
    2、 Set接口Set接口继承于Collection接口,它没有提供额外的方法,但实现了Set接口的集合类中的元素是无序且不可重复。特征:无序且不可重复。
    3、 List接口List接口同样也继承于Collection接口,但是与Set接口恰恰相反,List接口的集合类中的元素是对象有序且可重复。特征:有序且可重复。两个重要的实现类:ArrayList和LinkedList1.ArrayList特点是有序可重复的。

    4、Map接口Map也是接口,但没有继承Collection接口。该接口描述了从不重复的键到值的映射。Map接口用于维护键/值对(key/value)。特征:它描述了从不重复的键到值的映射。两个重要的实现类:HashMap和TreeMap1.HashMap,中文叫散列表,基于哈希表实现,特点就是键值对的映射关系。一个key对应一个Value。HashMap中元素的排列顺序是不固定的。更加适合于对元素进行插入、删除和定位。

    5、Iterator接口Iterator接口,所有实现了Collection接口的容器类都有iterator方法,用于返回一个实现了Iterator接口的对象。Iterator对象称作迭代器,Iterator接口方法能以迭代方式逐个访问集合中各个元素,并可以从Collection中除去适当的元素。

    展开全文
  • CSS有哪些属性可以继承

    千次阅读 2019-06-03 19:30:09
    这里是修真院前端小课堂...【CSS有哪些属性可以继承? 】 1.背景介绍 了解css样式表的继承,我们先从文档树(HTML DOM)开始,文档树由HTML元素组成,文档树和家族树类似,也有祖先、后代、父亲、孩子、兄弟 ...

    这里是修真院前端小课堂,每篇分享文从

    【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】

    八个方面深度解析前端知识/技能,本篇分享的是:

    【CSS有哪些属性可以继承? 】

    1.背景介绍

    了解css样式表的继承,我们先从文档树(HTML DOM)开始,文档树由HTML元素组成,文档树和家族树类似,也有祖先、后代、父亲、孩子、兄弟

     

    css样式表继承指的是,特定的css属性向下传递到后代元素

    2.知识剖析

    对于一些可以继承的属性,可以只设置上级的CSS样式表树形,子级(下级)不用设置,会自动继承此CSS属性,可以减少CSS代码,便于维护。

    那么有哪些属性可以自动继承呢

    有继承性的属性:

    1、字体系列属性

    font:组合字体

    font-family:规定元素的字体系列

    font-weight:设置字体的粗细

    font-size:设置字体的尺寸

    font-style:定义字体的风格

    font-variant:设置小型大写字母的字体显示文本,这意味着所有的小写字母

    均会被转换为大写,但是所有使用小型大写字体的字母与其余文本

    相比,其字体尺寸更小。

    font-stretch:允许你使文字变宽或变窄。所有主流浏览器都不支持。

    font-size-adjust:为某个元素规定一个 aspect 值,字体的小写字母 "x"

    的高度与"font-size" 高度之间的比率被称为一个字体的 aspect 值。

    这样就可以保持首选字体的 x-height。

    有继承性的属性:

    2、文本系列属性

    text-indent:文本缩进

    text-align:文本水平对齐

    text-shadow:设置文本阴影

    line-height:行高

    word-spacing:增加或减少单词间的空白(即字间隔)

    letter-spacing:增加或减少字符间的空白(字符间距)

    text-transform:控制文本大小写

    direction:规定文本的书写方向

    color:文本颜色

    有继承性的属性:

    3、元素可见性:visibility

    4、表格布局属性:caption-side

    border-collapse

    empty-cells

    5、列表属性:list-style-type

    list-style-image

    list-style-position、list-style

    6、设置嵌套引用的引号类型:quotes

    7、光标属性:cursor

    8、还有一些不常用的;speak,page等属性,暂不讲解;

    所有元素可以继承的属性:

    1、元素可见性:visibility

    2、光标属性:cursor

    内联元素可以继承的属性:

    1、字体系列属性

    2、除text-indent、text-align之外的文本系列属性

    块级元素可以继承的属性:

    text-indent、text-align

    无继承的属性

    1、display

    2、文本属性:vertical-align

    text-decoration

    3、盒子模型的属性:宽度、高度、内外边距、边框等

    4、背景属性:背景图片、颜色、位置等

    5、定位属性:浮动、清除浮动、定位position等

    6、生成内容属性:content、counter-reset、counter-increment

    7、轮廓样式属性:outline-style、outline-width、outline-color、outline

    8、页面样式属性:size、page-break-before、page-break-after

    继承中比较特殊的几点

    1、a 标签的字体颜色不能被继承

    1、<h1>-<h6>标签字体的大下也是不能被继承的

    因为它们都有一个默认值

    3.常见问题

    问题1:多种样式混合应用的优先级问题

    问题2:font-size的继承问题

    4.解决方案

    当有多个规则都能应用于同一个元素时,权重越高的样式将被优先采用。

    ”important>内联 >ID>类 >标签 |伪类|属性选择 >伪对象 >继承 >通配符”

    font-size是可以被继承的。但是它的方式有一些特别。Font-size的子类继承的不是实际值,而是计算后的值。


    下面是一个例子

    <p>字体大小属性<em>继承特性</em>的演示代码</p>

    p { font-size:14px;}

    由于浏览器默认字体大小是16px,而p定义了字体14px,所以em继承了p的字体大小属性,也是14px;

     

    p { font-size:85%;}

    浏览器默认字体大小16px,而p定义了字体大小(16px X 85% = 13.6px). 13.6px这个值将被子元素em继承。

     

    p { font-size:0.85em;}

    浏览器默认字体大小16px,而p定义了字体大小(16px X 0.85 = 13.6px). 13.6px这个值将被子元素em继承。

     

    body { font-size: 85%; }

    h1 { font-size: 200%; }

    h2 { font-size: 150%; }

    浏览器默认字体大小16px,而body定义了字体大小(16px X 85% = 13.6px). 如果子元素没有指定字体大小13.6px这个值将被子元素继承。

     

    5.编码实战

    6.扩展思考

    inherit关键字

    inherit 关键字指定一个属性应从父元素继承它的值。

    inherit 关键字可用于任何 HTML 元素上的任何 CSS 属性。

    除了inherit关键字外,还有什么其他的关键字继承特性

    在css3中新增加了几个继承特性

    initial:用来设置css属性值为它的默认值,也就是浏览器默认设置的css属性值。

    unset:一个属性定义了unset值,如果该属性是默认继承属性,该值等同于inherit,如果该属性是非继承属性,该值等同于initial

    all: [ inherit | initial | unset ]:  最后,all是一个属性而不是一个值。你可以指定inherit、initial或者unset来影响所有的属性,例如重置所有CSS属性为浏览器默认:

    7.参考文献

    参考一:学习CSS的继承性

    参考二:继承的技巧

    8.更多讨论

    1.关键字是否能通用:

    关键字可以强制更改是否继承属性,不管该属性能不能继承,设置inherit和强制继承父元素的某些属性;

    展开全文
  • C++继承(1) - 基类哪些数据会被子类继承下来

    目录

    1.子类会从基类继承下来的所有数据

    2.子类不会继承的基类的数据

    3.当一个子类对象被创建时

    4.当一个子类对象被销毁时

    5.继承中的权限问题

    5.1基类私有成员

    5.2子类覆写基类函数

    5.3私有继承


    1.子类会从基类继承下来的所有数据

    1) 基类中的每个数据成员(尽管子类不一定都能访问)
    2) 基类中的每个普通成员函数(尽管子类不一定都能访问)
    3) 与基类相同的初始数据层

    2.子类不会继承的基类的数据

    1) 基类的构造函数与析构函数
    2) 基类的友元

    3.当一个子类对象被创建时

    包括下面的步骤:

    -在栈或者堆上给整个对象分配存储空间(即从基类继承下来的数据大小加上子类自身数据成员的大小)

    -调用基类的构造函数来初始化从基类继承下来的数据

    -调用子类的构造函数来初始化子类中的数据成员

    -此时,子类对象可以使用了

    4.当一个子类对象被销毁时

    销毁包括生命周期结束或者delete显式释放:

    -首先调用子类的析构函数

    -然后调用基类的析构函数

    -最后这个对象的内存资源被回收

    5.继承中的权限问题

    5.1基类私有成员

    如上面1.1提到的,虽然子类会继承基类的所有数据成员,但是不一定都有权限去访问。取决于基类中的声明方式,以及继承方式。参考下面例子:

    #include<iostream>
    using namespace std;
    
    class A
    {
         int x;
    public:
         A() { x = 11; }
         A(int i) { x = i; }
         void print() { cout << x; }
    };
    
    class B : public A
    {
    public:
         B() :A(10) {  }
    };
    
    int main()
    {
         B b;
         b.print();
         return 0;
    }

    输出:
    10

    因为B继承了A的普通成员函数A::print()。虽然B的对象无法直接访问私有成员x, 但是A::print函数有权限访问x. 

    5.2子类覆写基类函数

    基于5.1中的程序,如果类B中覆写了这个函数,并打印x, 

    class B : public A
    {
    public:
        void print() { cout << x; }
    };

    则编译会失败,提示如下:

    error C2248: “A::x”: 无法访问 private 成员(在“A”类中声明)

    5.3私有继承

    基于5.1中的程序,如果B是私有继承自A
    class B : private A
    则main函数中,当调用下面这行代码时:
    b.print();
    编译器会提示错误:
    “A::print”不可访问,因为“B”使用“private”从“A”继承

    这是因为虽然B继承了A的成员函数A::print(), 但是因为是私有private继承,B的对象已经没有权限访问print了。
    不过,如果还是想让B的对象可以访问这个函数,可以在B中增加一个公有函数,如下所示:
    void printHelp() { print(); }
    这样,b.printHelp()还是可以打印出x的值。

    展开全文
  • 先给出答案:可以被子类继承,不能被子类重写。 关于父类和子类关系还不太了解的看一去看一下链接https://blog.csdn.net/qq_34826261/article/details/97635047,里面详细解释了父类和子类不同情况下成员方法和成员...

    先给出答案:可以被子类继承,不能被子类重写。
    关于父类和子类关系还不太了解的看一去看一下链接https://blog.csdn.net/qq_34826261/article/details/97635047,里面详细解释了父类和子类不同情况下成员方法和成员变量的关系。这里默认已经知道了子类和父类之间的关系。
    那么子类能不能重写父类的静态方法?

    class parent{
    	public static void printA() {
    		System.out.println("父类静态方法");
    	}
    	public void printB() {
    		System.out.println("父类普通方法");
    	}	
    }
    
    class child extends parent{
    	public static void printA() {
    		System.out.println("子类静态方法");
    	}
    	public void printB() {
    		System.out.println("子类普通方法");
    	}	
    }
    

    下面调用子类的方法

    public class Main {
        public static void main(String[] args){
        	child c1 = new child();
        	c1.printA();
        	c1.printB();
        }
    }
    // 输出
    子类静态方法
    子类普通方法
    

    可以调用printC(),这显然说明子类可以继承父类的static方法。
    那这里printA方法输出了“子类静态方法”,是子类对父类static方法的重写吗?并不是,通过子类自身调用方法肯定是调用自己的方法,即子类对象通过指针调用方法时,就是直接调用子类自身的静态方法。
    Java编程思想里说

    “覆盖”只有在某方法是基类的接口的一部分时才会出现。即,必须能将一个对象向上转型为它的基本类型并调用相同的方法。
    

    这说的是啥?看不懂,直接上例子。
    我们知道在向上转型时,对象所调用的方法时子类和父类所共有的方法,就是说父类未被覆盖的方法和父类被覆盖的方法(不懂的点链接看第五部分内容),看一下代码输出:

    public class Main {
        public static void main(String[] args){
        	parent c2 = new child();
        	c2.printA();
        	c2.printB();
        }    
    }
    // 输出
    父类静态方法
    子类普通方法
    

    这里看到printA方法输出的是“父类静态方法1”,说明printA方法并没有被覆盖。在加上重写的注释看一下,直接报错。
    在这里插入图片描述
    实际上Java里不管是static方法还是final方法不是不能被覆盖的,那为什么在子类写一个和父类同名的静态方法不会报错,而写一个同名的final方法分分钟报错给你看?其实final修饰的不管是普通方法还是静态方法,子类中都不允许由同名的方法,这是规定。那子类里的为什么可以有重名的静态方法,可以把它理解为重新定义,,静态方法是在类加载时就和类绑定在一起,是静态绑定,子类有同名的静态方法,就是在加载子类的同名静态方法时重新分配一块空间,和父类的静态方法没有任何关系!!下图只是示意图,不要死扣静态方法和普通方法的内存区不一样。
    在这里插入图片描述
    可以简单粗暴的理解一下:重写的意思是重新定义父类的虚函数,但是虚函数是动态绑定的,而静态方法是静态绑定的,所以静态函数必然不能是虚函数,也就不存在重写了。
    在最后总结一下,父类的静态方法可以被继承,不能被重写。

    展开全文
  • Python中的多继承

    千次阅读 2019-05-21 18:02:49
    文章目录Python中的多继承继承Python多继承实现多继承的缺点Mixin*思路1**思路2**思路3**思路4*Mixin Python中的多继承 Python2.2之前是没有共同的祖先的,之后...新式都是继承自object的,新式类可以使...
  • 之前在 intellij idea常用快捷键 里面说到过,Ctrl+o快捷键,可以快速打开当前的基类(父类),父类比较多的时候只能一层一层的打开,不太直观,使用下面的方法可以非常直观的展示出一个的所有父类关系图。...
  • 之间仅单继承,不能多继承 解释:子类如果能继承多个父类,如果多个父类中存在同名属性或者方法,子类继承时将不能判断继承自哪个父类的属性和方法,所以之间不能多继承。 接口之间可以继承 解释:接口中的...
  • java中私有方法是否可以被继承

    千次阅读 2020-07-28 17:43:00
    很多小伙伴都认为父类的私有成员在子类中访问不到,所以误认为父类中的私有成员是不可以被继承的。今天遇到了同样的问题,特意花了点时间研究了一下。下面请看源码 首先定义一个父类,父类中提供一个私有属性a和私有...
  • 在 IntelliJ IDEA 中这个查看一个也就是当前的所有继承关系,包括实现的所有的接口和继承, 这个继承,不仅仅是一级的继承关系,包括好几层的继承。父类的父类的父类。直到最后。 可以很清楚明了的了解一个...
  • C++中定义一个不能被继承

    千次阅读 多人点赞 2015-08-31 10:56:16
    最开始是从构造函数开始着手(先声明这种方法不能定义一个不能被继承,这是一种错误的方法,但是很容易往这方面想),假设存在下面继承体系: 现在假设B是一个不能被继承,那么如果存在B的子类C,那么C的...
  • C++类体系中,不能派生类继承的有? 构造函数不能继承,但是可以被调用。派生类的构造函数在初始化列表中应调用基类的构造函数。 --------------------- 为什么C++赋值运算符重载函数不能继承? 这个问题...
  • python 多重类继承__init__

    千次阅读 2019-03-29 19:46:50
    项目中遇到多重类继承的问题,想调用父类构造函数中的内容,调试了一两个小时,遇到两个问题。 说不存在某个父类的函数; 报MRO列表错误; 查询了相关的文档,大致是讲解父类的继承,没有涉及到多重继承,以及多重...
  • 。。。
  • C#静态继承等疑惑解答

    千次阅读 2018-08-15 11:27:52
    静态不允许从静态中进行派生,也不允许从非静态中派生,静态必须从对象派生(个人觉得可能静态不允许继承类),不允许有非静态的构造函数。下面代码会报错 public static class staFun { static ...
  • 今天我们谈谈为什么抽象中不能有静态的抽象方法以及static修饰的方法不能重写可以被继承 1 static修饰的方法不能重写可以被继承 我们知道static修饰的方法为静态方法,可以直接使用类名.方法名进行调用...
  • IntelliJ IDEA使用教程 (总目录篇) 在 IntelliJ IDEA 中这个查看一个也就是当前...可以很清楚明了的了解一个的实现关系。diagram 英[ˈdaɪəgræm] 美[ˈdaɪəˌɡræm] n. 图表; 示意图; 图解; [数] 线图;...
  • C++中的多继承

    万次阅读 多人点赞 2015-07-19 23:07:43
    在c++中一个类可以从多个基类中派生(即可以有多个父类),这就是多继承。多继承的方式主要有两种:1. 简单版本 C会同时拥有A和B的特性(属性和方法,也就是两个的所有成员)。这种方式很简单这里就不多说,...
  • c++(模板的继承

    万次阅读 2019-05-03 22:05:53
    下面程序中的searcharray模板就继承了之前的freearray模板,然后在他的基础上实现对特定数组元素的查找操作: //此模板继承自freearray template <class T> class SearchArray:public FreeArray<T> ...
  • idea 查看类继承关系的快捷键

    千次阅读 2021-01-12 18:28:49
    类似eclipse ctrl+t的快捷键,idea中是ctrl+H…找到对应的 查看关系图…1.在想要查看的上按 Ctrl + H -> Diagrams -> Show Diagrams -> Java Class Diagrams -> Show Implementations -> Ctrl +...
  • 首先看下面这一段代码:(底下有热心网友更正,jdk1.8之后情况确实有点变化,等改天有空继续更) interface a{ void b(); } interface a1 extends a{ void b(); } interface a2 extends a{ void b(); } ...
  • java中定义一个类可以同时继承两个  分享| 2013-09-18 17:12yfjmhe | 浏览 19117 次  继承 这句话对还是错?为什么? 专业回答 DM19890110 2013-09-18 17:58 这句话要看怎么理解...
  •  继承性是面向对象程序设计的第二大特性,它允许在既有的基础上创建新,新类可以继承既有的数据成员和成员函数,可以添加自己特有的数据成员和成员函数,还可以对既有中的成员函数重新定义。利用继承和...
  • Intellij IDEA笔记(四):在IDEA中,我们可以通过(选中类名)快捷键Alt + 7或者(选中类名/打开后在中)Ctrl + F12来查看类下面哪些方法/变量 2.我们可以通过快捷键Ctrl + H,查看/接口的继承关系 3.继承...
  • 面试题28:不能被继承

    千次阅读 2017-06-13 22:24:52
    在C#中定义了关键字sealed,sealed修饰的不能够被继承。在Java中同样也有关键字final表示一个不能被继承。C++11提供final关键字使得不能够被继承。那么,如何自己实现一个不被继承?常规的解法是,把...
  • Java—内部(三)—内部继承

    万次阅读 多人点赞 2016-12-14 14:23:50
    内部继承内部和其他普通一样,同样可以被继承,这样给本来就十分灵活的内部增加了更好的结构性和代码复用性。只是内部继承和普通有一些不同之处,是在使用时需要多加注意的。因为内部在创建时需要...
  • python面向对象基础知识 面向对象的三大特性:封装、继承和多态。 [Python 面向对象(初级篇)] ...在Python中,同时支持单继承与多继承,一般语法如下: class SubClassName(ParentClass1 [, Pare...
  • 前面我们已经介绍了javascript中6种继承方式,这6中继承方式都是基于es5的,那么接下来我们要讲的是es6中新增的一种继承方式—— 继承 在es6中新引进了的概念,作为对象的模板。是对现实生活中一具有...
  • 【C++】C++继承和派生、虚基类

    万次阅读 多人点赞 2018-06-07 18:46:17
    派生则是继承的直接产物,它通过继承已有的一个或多个来产生一个新的,通过派生可以创建一种类族。 继承 基本概念 在定义一个A时,若它使用了一个已定义B的部分或全部成员,则称A继承...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 904,887
精华内容 361,954
关键字:

下面哪些类可以被继承