task04打卡:类与方法 继承和多态

面向对象编程

面向对象编程主要体现下列三个特性:封装性 ;继承;多态

一、类与方法

1、类的实现包括两部分:类声明和类体。基本格式为:

image

2、类与对象的区别和联系

image

3、对象在内存中存在形式

image

4、属性/成员变量


示例:

image

注意事项和细节说明:

5、成员方法

成员方法的定义:

6、方法的调用机制

image

7、类的主方法

主方法的语法如下∶

image

在主方法的定义中可以看到主方法具有以下特性∶

(1)主方法是静态的,所以如要直接在主方法中调用其他方法,则该方法必须也是静态的。
(2)主方法没有返回值。
(3)主方法的形参为数组。其中 args[0]~args[n] 分别代表程序的第一个参数到第n+1个参数,可以使用 args.length 获取参数的个数。

二、继承和多态

1、继承的基本介绍

继承可以解决代码复用,让我们的编程更加靠近人类思维.当多个类存在相同的属性(变量)和方法时,可以从这些类中抽象出父类,在父类中定义这些相同的属性和方法,所有的子类不需要重新定义这些属性和方法,只需要通过extends来声明继承父类即可。

2、继承的基本语法

class 子类extends父类{
}

(1)子类就会自动拥有父类定义的属性和方法
(2)父类又叫超类,基类
(3)子类又叫派生类

3、继承示意图

image

4、继承关键字

extends:声明子类继承于某父类

Implements:可以实现多个接口,相当于使得Java具有多继承的特性。

super:引用当前对象的父类成员

this:指向当前类的引用。

Final:将类定义为不可继承的,也可以用于修饰方法,被修饰的方法不可被子类重写。

5、继承的特性

(1)子类不继承父类的private属性和方法
(2)子类可以对父类进行扩展,拥有自己的属性和方法
(3)子类是不继承父类的构造器(构造方法或者构造函数)的,它只是调用(隐式或显式)。如果父类的构造器带有参数,则必须在子类的构造器中显式地通过super关键字调用父类的构造器并配以适当的参数列表
(4)如果父类构造器没有参数,则在子类的构造器中不需要使用 super 关键字调用父类构造器,系统会自动调用父类的无参构造器。

6、多态

多态是同一个行为具有多个不同表现形式或形态的能力。

多态的转型

(1)向上转型

当不需要面对子类类型时,通过提高扩展性,或者使用父类的功能就能完成相应的操作。
父类类型 变量名=new 子类类型()

(2)向下转型

当要使用子类特有功能时。
子类类型 变量名=(子类类型) 父类类型的变量;