Java学习笔记

作者: LogosLi | 来源:发表于2017-05-08 16:59 被阅读66次
程序

抽象类和接口之间的区别

1.关键字 abstract class interface

2.组成 构造方法,抽象方法,普通方法,static方法,常量和变量 接口只有全局常量和抽象方法

3.子类的使用 class子类extends抽象类 class类实现多个interface

4.关系 抽象类可以实现多个接口 接口不能继承抽象类

5.权限 抽象类可以使用各种权限 接口只能使用public

6.限制 单继承局限 接口不存在单继承局限

7.子类 抽象类和接口必须有子类,子类必须覆写全部的抽象方法

8.实例化对象 依靠上向转型实现实例化。

总结:抽象类比接口功能要多,只有一点,接口不受单继承局限,所以在抽象类和接口全部可以使用时,我们会优先考虑使用接口

参考:

1.在进行公共操作时必须要定义出接口

2.有了接口必须使用子类完善方法

3.如果是你自己所定义的接口,绝对不可以使用关键字new去创建接口的子类实例化对象,必须使用工厂类去构建这个实例化对象。

掌握的知识点:

1.抽象类和接口的定义区别

2.接口作为标准用于解耦合以及不同层之间的连接桥梁

3.一定要将工厂模式和代理模式的结构记下来。

final关键字

可以修饰类,方法以及属性(field)

1、使用final定义的类不能有子类(被阉割的类)

2.使用final修饰的方法不能被子类所覆写

3.使用final定义的变量就成为了常量,常量必须要进行赋值,不能采用默认赋值,而且被final修饰的常量名称在java开发中必须采用大写字母去表示,单词之间可以采用下划线进行分隔,

全局常量:

public static final 常量类型 常量名 = 常量值

对象的多态性

1.方法的多态性,包括方法的重载以及方法的覆写

class A{}

class B extends A{}

A a = new B();

上述的a就是向上转型

B b = (B)a;

这是向下转型

1.向上转型

向上转型之后的对象不能调用自己特殊的方法和属性,只能调用父类中的方法和属性,在调用中假设

父类的方法被其覆写,就采用覆写之后的方法。

主要为了统一参数,也就是说我们可以利用父类调用到子类的对象,利用其的向下转型将其转化为这个子类类型的对象。

2.向下转型

向下转型主要是为了调用子类的特殊方法。

注意:在向上转型的过程中,属性的覆盖不会被调用的,还是会直接调用父类的属性值。

通常情况我们为了参数的统一我们会使用向上转型

为了调用子类的特殊方法会使用子类的特殊方法

不转型,例如:String

强制转型可能会带来安全问题,我们在开发中药尽量少用。

instanceof可以判断一个对象是否可以由一个类实例化,向上转型之后才能向下转型

方法的覆写

1.方法的覆写

2.属性的覆盖

1.1方法的覆写(override)

原则:两同两小一大

1.方法名相同

2.参数类型和个数相同

3.返回值类型小于或者等于父类的返回值类型

4.抛出异常的类型小于或者等于父类抛出的异常类型

5.方法权限必须大于或者等于父类方法的权限

注意:私有方法不能被直接调用,所以也无法覆写,在上面我们的大小比较是指父类的范围比子类大,子类的对象范围父类的对象范围小,无论是直接父类,还是间接父类。

我们还可以复习一下重载概念(overload)

1.方法名相同

2.参数类型,个数,顺序有所不同就可以

如何在子类中调用被覆写了的方法:

我需要使用super关键字去调用:

super.父类被覆写的方法

重载和覆写(加一点)

重载的返回值可以不同,在开发中尽量保持统一

相关文章

网友评论

    本文标题:Java学习笔记

    本文链接:https://www.haomeiwen.com/subject/rcevzttx.html