摘要: 非静态成员函数: 在编译时期:参阅引用型变量所属的类中是否有调用的方法。如果有,编译通过,如果没有,编译失败。 在运行时期:参阅对象所属的类中是否有调用的方法。 总结:非静态成员函数在多态调用时,编译看左边,运行看右边。 在多态中成员变量的特点: 无论编译和运行都参考左边(引用型变量所属的类)。 静 阅读全文
posted @ 2020-03-17 17:33 hongxiao2020 阅读(359) 评论(0) 推荐(0)
摘要: 多态存在向上转型,类型提升 在子类中要调用自己特有的方法时,需要将父类的引用转化成子类类型,向下转型。 多态自始至终都是子类对象在做着变化。 instanceof 运算符只能用作对象的判断(null为false)。 阅读全文
posted @ 2020-03-17 16:55 hongxiao2020 阅读(356) 评论(0) 推荐(0)
摘要: 可以理解为事物存在的多种体现形态。 多态的体现: 父类的引用指向了自己的子类对象。 父类的引用也可以接收自己的子类对象。 多态的前提: 必须是类与类之间有关系,要么继承,要么实现。 通常还要一个前提:存在覆盖 多态的好处: 大大的提高了程序的扩展性 多态的弊端: 提高了扩展性,但是只能使用父类的引用 阅读全文
posted @ 2020-03-17 16:35 hongxiao2020 阅读(138) 评论(0) 推荐(0)
摘要: 当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示。 class用于定义类。 interface用于定义接口。 接口定义时,格式特点: 1.接口中常见定义:常量,抽象方法。 2.接口中的成员都有固定修饰符。 常量:public static final 方法:public abstract 阅读全文
posted @ 2020-03-17 03:20 hongxiao2020 阅读(173) 评论(0) 推荐(0)
摘要: 在定义功能时,功能的一部分是确定的,但是有一部分是不确定的,而确定的部分在使用不确定的部分,那么这时就将不确定的部分暴露出去。由子类去完成。 案例:求一段代码的运行时间 abstract class GetTime{ public final void getTime(){ long start = 阅读全文
posted @ 2020-03-17 02:32 hongxiao2020 阅读(201) 评论(0) 推荐(0)
摘要: 当多个类中出现相同功能,但是功能主体不同,这时可以进行向上抽取,只抽取功能定义,而不抽取功能主体。 抽象类的特点: 1.抽象方法一定定义在抽象类中 2.抽象方法和抽象类都必须被abstract关键字修饰。 3.抽象类不可以用new创建对象,因为调用抽象方法没意义。 4.抽象类中的方法要被使用,必须由 阅读全文
posted @ 2020-03-17 02:06 hongxiao2020 阅读(182) 评论(0) 推荐(0)
摘要: 1.可以修饰类、变量、函数。 2.被final修饰的类不可以被继承,为了避免被继承,被子类复写功能。 3.被final修饰的方法不可以被复写。 4.被final修饰的变量是一个常量只能赋值一次,即可以修饰成员变量,又可以修饰局部变量。 在描述事物时,一些数据的出现值是固定的,那么为了增强阅读性,都给 阅读全文
posted @ 2020-03-17 01:23 hongxiao2020 阅读(178) 评论(0) 推荐(0)