-
对象:万物皆对象,客观存在的事物皆对象 面向对象:关注一个具体事物的信息 类:类是模子,确定对象将会拥有的特征(属性)和行为(方法)。类是对象的类型,具有相同属性和方法的一组对象的集合 对象的属性:对象具有的各种特征 方法:对象执行的操作 类和对象的关系/区别:类是抽象的概念,仅仅是模板。对象是一个你能够看的到、摸得着的具体实体。类是客观不存在的,对象是具体实体查看全部
-
接口用关键字interface声明。 接口的地位等同于class,接口中的所有方法都是抽象方法。 接口中在定义方法的时候,可以使用abstract关键字,也可以省略abstract关键字,(大多数时候都是省略的),方法仍是抽象的,不能有实现的花括号。 接口和抽象类的功能类似,接口也不能实例化,可以将接口看作是一种特殊的抽象类(全是抽象方法)。 接口的多态用法和抽象类也类似,接口类型的引用可以指向实现了这个接口的类的对象。 接口和抽象类的区别如下: 接口中的方法必须全是抽象方法;而抽象类中的方法,可以有抽象的,也可以有具体的方法。 类可以实现接口,用关键字implements。Java是单继承的,但是却可以实现多个接口。(一个类可以同时继承另一个类,并且实现多个接口。) 如果一个类实现了一个接口,并且这个类不是抽象类,那么这个类必须实现这个接口中的所有方法。如果是抽象类,则无需实现接口中的所有方法。 所谓多态,就是父类型的引用可以指向子类型的对象,或者接口类型的引用可以指向实现该接口的类的实例。 关于接口与实现接口的类之间的强制类型转换方式与父类和子类之间的强制类型转换方式完全一样。查看全部
-
1、抽象类里面可以有非抽象方法,但接口里只能有抽象方法 声明方法的存在而不去实现它的类被叫做抽像类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。 不能创建 abstract 类的实例,然而可以创建一个变量,其类型是一个抽像类,并让它指向具体子类的一个实例。 不能有抽像构造函数或抽像静态方法。abstract 类的子类为它们父类中的所有抽像方法提供实现,否则它们也是抽像类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。 2、接口(interface)是抽像类的变体。 在接口中,所有方法都是抽像的。 多继承性可通过实现这样的接口而获得。 接口中的所有方法都是抽像的,没有一个有程序体。 接口只可以定义 static final 成员变量。 接口的实现与抽象类相似,当类实现接口时,它需要实现(即将程序体给予)所有这种接口的方法。查看全部
-
抽象类定义 1、语法定义: 抽象类钱使用abstract关键字修饰,则该类为抽象类。 2、应用场景: a、在某些情况下,某个父类只是知道其子类应该包含怎样的方法,但无法准确知道这些子类如何实现这些方法 b、从多个具有相同特征的类中抽象出一个抽象类,以这个抽象类作为子类的模板,从而避免了子类设计的随意性。 3、作用: 限制规定子类必须实现某些方法,但不关注实现细节。 4、使用规则: a、abstract定义抽象类 b、abstract定义抽象方法,只有声明,不需要实现 c、包含抽象方法的类是抽象类 d、抽象类中可以包含普通的方法,也可以没查看全部
-
抽象类abstract class 用关键字abstract修饰的类叫做抽象类,抽象类不能被实例化,即不能new出来一个抽象类的对象(实例)。 抽象类也有构造方法,但这些构造方法必须在子类中被调用。 如果一个类包含了抽象方法,那么这个类一定要声明成抽象类。如果某个类是抽象类,那么这个类既可以包含抽象方法,也可以包含具体的方法(有声明,有实现)。抽象类中如果全是具体方法也是允许的;抽象类也可以是空的,即什么也不包含。 抽象类的继承 1.子类是抽象类 那么子类在声明时仍然需要abstract关键字,子类可以选择实现或者不实现父类的抽象方法,(因为抽象类中也可以包括具体方法,甚至可以全是具体方法)。但是无论怎样,因为子类还是一个抽象类,所以不能实例化。 2.子类不是抽象类 子类不是抽象类时可实例化,但是这时候子类必须实现父类所有的抽象方法。实现抽象方法的时候不必再使用abstract关键字。查看全部
-
引用类型转换:小类型转换大类型 没问题,而大类型转换小类型则可能发生溢出危险,我们可通过 (类名)引用 格式来进行强制类型转换,但为了避免隐式错误,我们引入关键字 instanceof 关键字来判断其左操作数是否能转换为右操作数,其返回一个布尔类型。 引用类型转换:1、向上类型转换(隐式/自动类型转换),小类型转换为大类型(无风险) 2、向下类型转换(强制类型转换),大类型转换为小类型(有风险)3、instanceof运算符用来解决对象引用类型转换的安全性问题 Dog dog=new dog(); Animal animal=dog; 向上类型转换 (子类引用转换父类引用) Dog dog2=(Dog)animal;向下类型转换(父类引用强制转换为子类引用) Cat cat=(Cat)animal 无法进行类型转换,会报错。因为animal其实是引用指向dog类型对象,因此 1编译时cat类型 2运行时dog类型查看全部
-
转换有风险查看全部
-
super关键字: 在对象内部使用 1.调用父类属性:super.xx 2.调用父类方法:super.xx() 1.创建子类对象时就调用了父类的构造方法,实际上此时隐式使用了super关键字。 2.子类要想调用父类的构造方法,必须把super()写到子类构造方法的第一行。查看全部
-
JAVA中的静态内部类: 1、 静态内部类不能直接访问外部类的非静态成员,但可以通过 new 外部类().成员 的方式访问。 2、 如果外部类的静态成员与内部类的成员相同,可以通过“类名.静态成员”访问外部类的静态成员;如果外部类的静态成员与内部类的成员名称不同,则可通过“成员名”直接调用外部类的静态成员。 3、创建静态内部类的对象时,不需要外部类的对象可以直接创建 内部类 对象名 = new 内部类();查看全部
-
final关键字: 1.修饰类,则该类不允许被继承。 2。修饰方法,则该方法不允许被覆盖(重写)。 3。修饰属性,则该类的属性不会进行饮食的初始化(类的初始化水下那个必须有值)或在构造方法中赋值(但只能选其一)。 4.修饰变量,则该变量的值只能赋一次值,即为常量。查看全部
-
继承的初始化顺序: 1.先初始化父类对象,后初始化子类对象。 2.先初始化属性,后执行构造方法。 即: 构造子类对象时,初始化顺序: 父类属性初始化——父类构造方法中的初始化——子类属性初始化——子类构造方法的初始化查看全部
-
方法的重写:子类重写父类的方法,调用时优先子类;查看全部
-
Java 中被 static 修饰的成员称为静态成员或类成员。它属于整个类所有,而不是某个对象所有,即被类的所有对象所共享。查看全部
-
静态内部类是 static 修饰的内部类,这种内部类的特点是: 1、 静态内部类不能直接访问外部类的非静态成员,但可以通过 new 外部类().成员 的方式访问 2、 如果外部类的静态成员与内部类的成员名称相同,可通过“类名.静态成员”访问外部类的静态成员;如果外部类的静态成员与内部类的成员名称不相同,则可通过“成员名”直接调用外部类的静态成员 3、 创建静态内部类的对象时,不需要外部类的对象,可以直接创建 内部类 对象名= new 内部类();查看全部
-
假如B是A的内部类: 1、编译A的过程中会自动生成A.class和A$B.class两个文件 2、内部类对象创建方法: 1)A a = new A(); A.B b = A.new B();(其中A.可以省去) 2) A.B b = new A().new B(); 3、 内部类的方法可以直接访问外部类的所有数据,包括私有的数据。查看全部
举报
0/150
提交
取消