java基础

Java 面向对象编程三大特性?
  封装 继承 多态
 封装:
  封装就是把抽象的数据和对数据进行的操作封装在一起,数据被保存在内部,程序的其他部分只有通过被授权的操作(成员方法)才能对数据进行操作。
  java提供了四种控制修饰符控制方法和变量访问的权限:
public:对外公开
protected:对子类和同一包中的类公开
没有修饰符号:向同一个包的类公开
private:只有类本身可以访问,不对外公开。


 继承:
  继承是使用已存在的类的定义作为基础建立新类的技术。继承可以解决代码复用问题,当多个类存在相同的属性(变量)和方法时,可以从这些类中抽象出父类,
       在父类中定义这些相同的属性和方法,所有的子类不需要重新定义这些属性和方法,只需要通过extend语句来声明继承父类。


 关于继承如下 3 点请记住:
        子类拥有父类对象所有的属性和方法(包括私有属性和私有方法),但是父类中的私有属性和 方法子类是无法访问,只是拥有。
子类可以拥有自己属性和方法,即子类可以对父类进行扩展。
子类可以用自己的方式实现父类的方法。


多态:
       所谓多态,就是指一个引用(类型)在不同情况下的多种状态,你也可以这样理解:父类型的引用指向子类型的对象。
多态有两个好处:
1. 应用程序不必为每一个派生类编写功能调用,只需要对抽象基类进行处理即可。大大提高程序的可复用性。//继承 
2. 派生类的功能可以被基类的方法或引用变量所调用,这叫向后兼容,可以提高可扩充性和可维护性。 //多态的真正作用,

接口(interface)和抽象类(abstract class)
        接口中的所有方法必须都是抽象的,不能有非抽象的普通方法(所有方法在接口中不能有实现);而抽象类中可以包含非抽象的普通方法。
接口中不能有构造方法,抽象类可以有构造方法。
接口中除了static、final变量,不能有其他变量,而抽象类中则不一定。
一个类可以实现多个接口,但只能继承一个抽象类。接口自己本身可以通过extends关键字扩展多个接口。
接口中的抽象方法只能是public类型的,并且默认修饰符是public;
抽象方法可以有public、protected和default这些修饰符(抽象方法就是为了被重写所以不能使用private关键字修饰!)。
接口中不能包含静态方法;抽象类中可以包含静态方法。
抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,
但接口中定义的变量只能是public static final类型,并且默认即为public static final类型。

接口和抽象类的相同点:
都可以被继承
都不能被实例化
都可以包含方法声明
派生类必须实现未实现的方法

为什么重写equals时必须重写hashCode方法? (重要)
当对象的equals()方法被重写时,通常有必要重写 hashCode() 方法,以维护 hashCode 方法的常规协定,
该协定声明相等对象必须具有相等的哈希码。
          (1)两个对象相等,hashcode一定相等
          (2)两个对象不等,hashcode不一定不等
          (3)hashcode相等,两个对象不一定相等
          (4)hashcode不等,两个对象一定不等

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值