面向对象基础学习小结

学习廖雪峰老师的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改为protectedsuper关键字表示父类(超类)。子类引用父类的字段时,可以用super.fieldName

在Java中,任何class的构造方法,第一行语句必须是调用父类的构造方法。如果没有明确地调用父类的构造方法,编译器会帮我们自动加一句super();如果父类没有默认的构造方法,子类就必须显式调用super()并给出参数以便让编译器定位到父类的一个合适的构造方法。这里还顺带引出了另一个问题:即子类不会继承任何父类的构造方法。子类默认的构造方法是编译器自动生成的,不是继承的。

4.多态

多态是指,针对某个类型的方法调用,其真正执行的方法取决于运行时期实际类型的方法。

多态具有一个非常强大的功能,就是允许添加更多类型的子类实现功能扩展,却不需要修改基于父类的代码。比如:计算税收,可以将不同标准的收入定义为收入的子类。工资,津贴,补助等类都继承自收入类,调用复写的方法即可求和,只需和收入类打交道。

5.final修饰符有多种作用:

  • final修饰的方法可以阻止被覆写;
  • final修饰的class可以阻止被继承;
  • final修饰的field必须在创建对象时初始化,随后不可修改。

6.抽象类

如果一个class定义了方法,但没有具体执行代码,这个方法就是抽象方法,抽象方法用abstract修饰。

因为无法执行抽象方法,因此这个类也必须申明为抽象类(abstract class)。使用abstract修饰的类就是抽象类。我们无法实例化一个抽象类。因为抽象类本身被设计成只能用于被继承,因此,抽象类可以强迫子类实现其定义的抽象方法,否则编译会报错。因此,抽象方法实际上相当于定义了“规范”。

7.接口

所谓interface,就是比抽象类还要抽象的纯抽象接口,因为它连字段都不能有。

接口的所有方法都是抽象方法,接口不能定义实例字段;

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值