概述
学习廖雪峰老师的Java小结,更详细请移步https://www.liaoxuefeng.com/wiki/1252599548343744/1260464690677856
1.String类型本身是引用的形式,但是在使用的时候可以当作和基本类型一样,例如:
String str1 = "abc";
String str2;
str2 = str1;
str1 = "de";
System.out.println(str1+" "+str2);
最后,输出:de abc。为什么str2的内容没有跟着str1一起改变呢?在执行str2=str1后,str1和str2都指向“abc”这块空间,但是对str1重新赋值的时候,在搜索“de”的时候没有找到这块空间,则执行新建空间,实际str1指向了新的“de”空间,这一步不会对str2产生影响,这也是String效率低的原因。
2.重载
方法重载是指多个方法的方法名相同,但各自的参数不同;方法重载的目的是,功能类似的方法使用同一名字,更容易记住,因此,调用起来更简单。
3.继承
继承是面向对象编程中非常强大的一种机制,它首先可以复用代码。
子类无法访问父类的private
字段或者private
方法。为了让子类可以访问父类的字段,我们需要把private
改为protected
。super
关键字表示父类(超类)。子类引用父类的字段时,可以用super.fieldName
。
在Java中,任何class
的构造方法,第一行语句必须是调用父类的构造方法。如果没有明确地调用父类的构造方法,编译器会帮我们自动加一句super();
如果父类没有默认的构造方法,子类就必须显式调用super()
并给出参数以便让编译器定位到父类的一个合适的构造方法。这里还顺带引出了另一个问题:即子类不会继承任何父类的构造方法。子类默认的构造方法是编译器自动生成的,不是继承的。
4.多态
多态是指,针对某个类型的方法调用,其真正执行的方法取决于运行时期实际类型的方法。
多态具有一个非常强大的功能,就是允许添加更多类型的子类实现功能扩展,却不需要修改基于父类的代码。比如:计算税收,可以将不同标准的收入定义为收入的子类。工资,津贴,补助等类都继承自收入类,调用复写的方法即可求和,只需和收入类打交道。
5.final
修饰符有多种作用:
final
修饰的方法可以阻止被覆写;final
修饰的class可以阻止被继承;final
修饰的field必须在创建对象时初始化,随后不可修改。
6.抽象类
如果一个class
定义了方法,但没有具体执行代码,这个方法就是抽象方法,抽象方法用abstract
修饰。
因为无法执行抽象方法,因此这个类也必须申明为抽象类(abstract class)。使用abstract
修饰的类就是抽象类。我们无法实例化一个抽象类。因为抽象类本身被设计成只能用于被继承,因此,抽象类可以强迫子类实现其定义的抽象方法,否则编译会报错。因此,抽象方法实际上相当于定义了“规范”。
7.接口
所谓interface
,就是比抽象类还要抽象的纯抽象接口,因为它连字段都不能有。
接口的所有方法都是抽象方法,接口不能定义实例字段;
最后
以上就是诚心宝马为你收集整理的面向对象基础学习小结的全部内容,希望文章能够帮你解决面向对象基础学习小结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复