当前位置:网站首页>理解 继承、多态、抽象以及它们的概念

理解 继承、多态、抽象以及它们的概念

2022-07-17 00:14:00 荼蘼_

继承

  1.  【访问修饰符】 class  子类名  extends  父类名{}

  2.  类的继承

       · 在java中定义一个类时,让这个类通过关键字 extends 继承一个已有的类。

       · 被继承的类称为 父类(又称为 超类/基类),新的类被称为 子类 (又称为派生类)。

       · 子类继承父类的所有属性和方法,也可以增加自己的属性和方法。

       · 子类的访问修饰符的权限要大于等于父类的访问修饰符权限。

  3.  规则

       ① 只支持单继承。每个类只能有一个父类,不允许有多重继承关系。

       ② 一个父类可以有多个子类。

       ③ 子类继承父类的所有属性和方法。

4.  子类的实例化

       · 子类实例化时,先实例化父类,然后实例化子类。

       · 调用父类的构造器时,先运行父类的构造器,父类构造器运行完毕才调用子类的构造器。

5.  super()

       · 子类继承父类时,并无参数传递的时候,在调用子类之前 super()可以省略不写,系统默认添加。(即程序自动先调用父类在运行子类代码)

       · super()只能出现在子类的构造方法中,必须是第一行。

       · super()的括号中的参数,调用父类哪个构造器,参数和构造器的传参类型一致。

       · super()的例子对比可以参照【https://www.cnblogs.com/jesse-zhao/p/10660533.html】,我学习时理解就是找这个网址理解的。比较清晰简单,代码明确。

6. 构造器

       ① 子类不能继承父类的构造器。

       ② 子类可以在自己的构造器中调用父类的构造器。

              super(参数1,参数2,...)

       ③调用父类中无参的构造器可以不写super()。

7. 访问权限修饰符的范围

 privatedefaultprotectedpublic
同一类
同一包中的类 
不同包中的子类  
其他包中的类   

================================================================================================

多态

1.  一种事物有多种形态叫做多态。

2. 对象  instance of  类     <-----理解:看对象是不是类的实例

     如:父类转子类

3. 设置父类的引用类型/接口类型。

4. 多态的体现:

     有继承或者实现

     重写

     父类引用指向子类对象

5. 多态的引用:

         子类类型的对象赋值于父类类型的引用(通过父类实例化子类 / 通过父类中的对象调用子类的方法)

Anmial  a  =  new  Dog();
a.eat();

 

================================================================================================

抽象

1.  【访问修饰符】  abstract  class  类名 {...}

2.  抽象类不能被实例化。

3.  有抽象方法的类一定是抽象类。(一个类中有一个/多个抽象方法,那么这个类一定是抽象类。)

4.  抽象类中的抽象方法在其子类中被实现,否则子类只能声明为abstract。

5.  有static的不是抽象方法。

6.  一个类部分实现接口的方法,该类一定是抽象类。

7.  一个类是抽象父类的子类,且 没有实现父类的所有抽象方法时,必须定义成抽象类。

 

 

 

 

 

 

 

 

 

 

 

原网站

版权声明
本文为[荼蘼_]所创,转载请带上原文链接,感谢
https://blog.csdn.net/dong_warm/article/details/105812172