被继承的类称为父类(超类),继承父类的类称为子类(派生类)通过继承可以实现代码重用子类拥有父类非 private 的属性、方法。子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。子类可以用自己的方式实现父类的方法。构造器而言,它只能够被调用,而不能被继承,可以通过使用super()进行调用,对 ...
分类:
编程语言 时间:
2020-05-03 16:32:36
阅读次数:
67
通过 Rtti 单元的 TRttiContext(是个 record), 可以方便地获取类的方法、属性、字段的列表. uses System.Rtti; //TRttiContext.GetTypes procedure TForm1.Button1Click(Sender: TObject); v ...
六大设计原则 单一职责 定义 每个类都应该有一个单一的功能 一个类或者模块应该有且只有一个改变的原因 规范 定义类的方法 避免类之间耦合度太高 里氏替换 定义 只要有父类出现的地方,都可以用子类来替代 规范 不要破坏继承体系 增加子类的时候系统可以正常执行 依赖倒置原则 定义 高层模块不应该依赖底层 ...
分类:
其他好文 时间:
2020-05-02 10:18:12
阅读次数:
77
C++支持多继承,由此引发错综复杂的命名冲突问题,这时需要虚继承的概念解决这些问题。在C++之后的Java不支持多继承,因此没有这些问题。 多继承是指从多个直接基类中产生派生类的方法,多继承的派生类继承了所有父类成员。多个基类相互交织产生了错综复杂的设计问题,命名冲突就是其中一个。以典型的菱形继承为 ...
分类:
编程语言 时间:
2020-04-30 21:31:00
阅读次数:
76
内部类 分类: 1、成员内部类 格式: 修饰符 class 外部类名称{ 修饰符 class 内部类名称{ //... } //... } 注意:内用外,随意访问;外用内,需要内部类对象。 使用方式: 1、间接方式:在外部类的方法当中,使用内部类,然后main只是调用外部类的方法。 2、直接方式: ...
分类:
其他好文 时间:
2020-04-30 18:58:40
阅读次数:
66
final关键字 /** * @program: intellij idea * @description:final关键字代表最终、不可改变的。 * * 常见用法: * 1、可以用来修饰一个类 * 2、可以用来修饰一个方法 * 3、可以用来修饰一个局部变量 * 4、可以用来修饰一个成员变量 * @ ...
分类:
其他好文 时间:
2020-04-30 13:43:05
阅读次数:
52
向上类型转换 父类型的引用指向子类型的实例。 Person p = new Person();Animal a = p; //子类对象赋值给父类类型的变量 注意: 向上转型后,子类单独定义的方法会丢失。 如果子类中重写了父类的方法,那么调用这个方法的时候,将会调用子类中的方法。 意义: 减少重复代码 ...
分类:
编程语言 时间:
2020-04-29 18:24:33
阅读次数:
84
方法的重写 : 子类不想完全继承父类的方法时,可以在子类下面定义一个和父类一样的方法 调用方法: 输出结果: 方法重写小结: overloading 与overriding的区别? overloading:方法的重载,发生在同一个类中,方法名相同,参数列表不同,返回值无关。 overriding:方 ...
分类:
其他好文 时间:
2020-04-28 23:02:37
阅读次数:
64
类(class)和对象(object)是两种以计算机为载体的计算机语言的合称。对象是对客观事物的抽象,类是对对象的抽象。类是一种抽象的数据类型。 它们的关系是,对象是类的实例,类是对象的模板。对象是通过new classname产生的,用来调用类的方法;类的构造方法 。 类相当于是一个笼统的概念而对 ...
分类:
其他好文 时间:
2020-04-26 17:05:45
阅读次数:
46
NoClassDefFoundError错误发生的原因 NoClassDefFoundError错误的发生,是因为Java虚拟机在编译时能找到合适的类,而在运行时不能找到合适的类导致的错误。例如在运行时我们想调用某个类的方法或者访问这个类的静态成员的时候,发现这个类不可用,此时Java虚拟机就会抛出 ...
分类:
其他好文 时间:
2020-04-26 15:29:31
阅读次数:
72