java进阶知识点总结
来源:互联网 发布:c语言读取bin文件内容 编辑:程序博客网 时间:2024/06/07 05:00
Java继承
继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。继承可以理解为一个对象从另一个对象获取属性的过程。
在Java中,类的继承是单一继承,也就是说一个子类只能有一个父类。
Java的重写和重载
重写是子类对父类的允许访问的方法的实现过程进行重新编写,返回值和形参都不能改变。
重写的好处在于子类可以根据需要,定义自己特定的行为。
也就是子类根据需要实现父类的方法。
方法重写的规则
- 参数列表必须完全与被重写方法的相同;
- 返回值类型必须与被重写方法的返回类型相同;
- 访问权限不能比被重写的方法的访问权限更低。
- 父类的成员方法只能被他的子类重写;
- 声明final的方法不能被重写;
- 声明为static的方法不能被重写,但能再次被声明;
- 子类和父类在同一包中,子类可以重写父类的所有方法,声明为final和private的除外;
- 子类和父类不再同一包中,那么子类只能重写父类声明的public和protected的非final方法;
- 重写的方法不能抛出比被重写方法更宽泛的异常
- 构造方法不能重写
- 如果不能继承一个方法,则不能重写该方法
重载
重载是在一个类里面,方法名相同,而参数不同,返回类型可以相同,也可以不同。
每个重载的方法都必须有独一无二的参数类型列表。
只能重载构造函数。
重载规则
- 被重载的方法必须改变参数列表
- 被重载的方法可以改变返回类型
- 被重载的方法可以修改访问修饰符
- 被重载的方法可以声明新的或者更广的异常
- 方法能在同一个类中或者在一个子类中被重载
Java多态
多态是同一个行为具有多个不同的表现形式或者形态的能力。
多态存在的三个必要条件:
- 继承
- 重写
- 父类引用子类对象
当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误,如果有,再去调用子类的同名方法,
多态的好处:可以使程序有良好的扩展,并可以对多有类的对象进行通用处理。
抽象类
在面向对象的概念中,所有的对象都是通过类来描述的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描述一个具体的对象,这样的类就是抽象类。
抽象类除了不能实例化对象之外,类的其他功能依然存在,成员变量,成员方法和构造方法的访问形式和普通类一样。
由于抽象类不能实例化对象,所以抽象类必须被继承才能被使用。
抽象方法
如果你想设计一个类,该类包含一个特别的成员方法,该方法的具体实现由它的子类确定,那么你可以在父类中声明该方法为抽象方法。
abstract关键字同样可以用来声明抽象方法,抽象方法只包含一个方法名,而没有方法体。
抽象方法没有定义,方法名后面直接跟一个分号,而不是花括号。
声明抽象方法会造成以下两个结果:
- 如果一个类包含抽象方法,那么该类必须是抽象类。
- 任何子类必须重写父类的抽象方法,或者自身声明为抽象类。最终,必须有子类实现抽象方法,否则,从最初的父类到最终的子类都不能用来实例化对象。
public abstract class Demo04 {
private String name;
public abstract void get();
}
public class Demo05 extends Demo04{
public static void main(String[] args) {
// TODO Auto-generated method stub
Demo04 d=new Demo05();
d.get();
}
@Override
public void get() {
System.out.println("111111");
}
}
接口
接口,在java编程语言中是一个抽象模型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式实现接口中的抽象方法。
接口并不是类,编写接口的方式和类很类似,但是他们属于不同的概念,类描述对象的属性和方法,接口则包含类要实现的方法。
除非实现接口的类是抽象类,否则该类要定义接口中所有的方法。
接口无法被实例化,但是可以被实现。一个类实现接口的类,必须实现接口中所有的方法,否则必须声明为抽象类,另外,在java中,接口类型可以用来声明一个变量,他们可以成为一个空指针,或者被绑定在一个以此接口实现的对象。
接口与类的相似点:
- 一个接口可以有多个方法;
- 接口文件保存在.java结尾的文件中,文件名实用接口名;
- 接口的字节码文件保存在.class结尾的文件中;
- 接口相应的字节码文件必须在包名称相匹配的目录结构中。
接口与类的区别
- 接口不能实例化对象
- 接口没有构造方法
- 接口中所有的方法否是抽象方法
- 接口不能包含成员变量,除了static和final变量
- 接口不是被继承而是被实现
- 接口支持多继承。
接口有以下特性
- 接口是隐式抽象的,当声明一个接口的时候,不必使用abstract关键词
- 每个接口中的方法也是隐式抽象的,声明是同样不需要使用关键字
- 接口中的方法都是共有的。
- java进阶知识点总结
- Java进阶之JDBC知识点总结
- Java进阶之验证码知识点总结
- Java进阶之JDBC知识点总结
- Java进阶之验证码知识点总结
- Swift:进阶知识点总结
- JAVA进阶知识点总结(1)— 异常
- JAVA进阶知识点总结(2)— 包:Package
- JAVA进阶知识点总结(3)— 多线程
- Java进阶之Jsp设计模式知识点总结
- Java进阶之Jsp找回密码知识点总结
- Java进阶之支付宝在线支付知识点总结
- Java进阶之Aiax无刷新分页知识点总结
- Java进阶之多级联下拉列表知识点总结
- Java进阶之JSP生成条形码知识点总结
- Java进阶之Jsp设计模式知识点总结
- Java进阶之Jsp找回密码知识点总结
- Java进阶之支付宝在线支付知识点总结
- Mongodb连接java
- 如何实现可配置的后台
- PAT(B) - 1054. 求平均值 (20)
- 移植u-boot学习笔记3-----分析启动过程之重定位
- mysql修改事务隔离级别
- java进阶知识点总结
- 给 Android 开发者的 RxJava 详解
- 汇编语言---GCC内联汇编
- Jquery原理
- SDWebImage 加载gif动图的缺陷与解决方法
- 《hadoop权威教程》学习记录_01环境
- 流形学习
- JVM调优的GC日志
- Python 多态与动态绑定