面向对象的基本特征

1.抽象

  • 设计类的过程称为抽象
  • 类是对象的抽象,类是相同或相似的特征和行为的对象的抽象

2.封装

  • 使用各种合适的访问限定符修饰属性方法和类
  • 规范:类都是public的,方法都是public、属性是private的
  • 属性的访问:构造方法/访问器方法

public所修饰的属性、方法和类都是可见的
四种访问修饰符都可以修饰属性、方法
public和package可以修饰类,private和protected不能修饰类

3.继承

类和类之间的关系:

  • 被继承的类叫做父类(超类、基类、元类、祖先类、上层类)
  • 继承父类的类叫做子类(后代类、继承类)

对于父类所有的东西(属性、方法),子类都有。子类可以在父类的基础上进行扩充。继承本质上是提高类代码的复用性

继承的语法:

父类:

public class A{
   
   }

子类(B继承A):

 public class B extends A{
   
  }

注意:

  • extends表示继承,s 不能省略
  • Java在类层次上只支持单继承:一个类只能有一个直接父类
  • 父类的属性和方法子类都拥有,但是不一定能用。父类的私有属性,子类不能直接访问。
  • 构造方法不能继承(但是…)
  • 如果子类自定义了和父类重名的属性,会直接覆盖(重名的方法可能覆盖,可能重载)
  • 一个类可以有很多子类
  • 子类之间是兄弟关系,之间互不干涉也无法继承
  • 父类的私有属性,子类拥有但不能直接访问,可以使用从父类继承来的公有(public修饰)的访问器访问

辟谣言论

  • 子类只能继承父类的非private属性(错)(访问器方法)
  • 构建子类对象的时候,先执行父类的构造方法(错)
  • Java是一种堆栈结构(错)

方法的重写(子类方法对于父类方法的重新实现)
注意:

  • (1)如果子类不重写父类方法,子类对象直接使用父类的方法
  • (2)如果子类重写父类方法,子类对象使用重写后的方法
  • (3)重写方法时,方法名和参数列表都不允许修改,访问限定符的范围允许放大
    重写快捷键:
    Alt + S ----->Override or Implements Methods…----->选择要重写的方法---->选择OK

重写和重载的区别:
(1)重写只能发生在两个类之间,重载可以在一个类的内部
(2)重写是父类方法的重新实现,父类方法在子类对象中无法调用,重载时对方法的延伸实现,是方法更具有多样性
(3)@Override注释(注解),方法重写的标志,一般置于重写方法头之上,不写也可以,但不规范
(4)重写的方法和原方法名称和参数列表完全一致,但是重载要求方法名一致但参数列表不一致

在子类中访问父类的方法:
**父类中的方法是普通的方法,此方法的调用需要使用父类的对象进行调用
我们可以使用super来调用父类的方法

  • super类似于this,表示当前对象所继承的父类对象的引用

  • super负责在重写父类方法的时候调用父类的方法**

    子类对象的构建过程(面试可能会问)

    • 第一步,先执行子类的构造方法
    • 第二步,在子类构造方法的第一行跳转到父类的构造方法开始执行(这里隐式调用了super();代表父类的构造方法,【注意,super();只能写在子类构造方法的第一行,也可以不写,默认生成,只是程序员不可见】)
    • 第三步,父类的构造方法执行完毕之后,回到子类的构造方法继续执行
    • 第四步,子类的构造方法执行完毕后,子类的对象构建完毕

继承的本质:
构建子类对象的过程中完整执行了父类的构造方法,在此过程中构建了一个父类的对象,在执行子类构造的构造的过程中,父类的对象被拆分,父类的属性和方法被拼接成子类的对象

万类之父–object

object是Java设计者提供的一个类,该类是除了自身之外其它所有类的父类

  • 如果一个类没有指定父类,那么Object是当前类的直接父类
  • 如果一个类通过extends指定了父类,那么Object类是当前类的间接父类

如何看到object的包:
Ctrl shirt T
在代码中输入object,把光标放上去同时按下Ctrl键,然后选择一个按键,再在新弹出界面选择下面的选项,同时选中该选项后面的第一个选框~~(field)~~ ,然后选中JDK路径,OK.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值