JAVA 基础8-面向对象3

一.类的多态:父类的引用指向子类的对象

在同一个方法中, 参数的类型相同,但是由于运行的环境不同而表现出来的不同的形式。

通常使用方法的重载(overload)和重写(override)实现类的多态性,在方法的重载中根据调用参数的个数和类型区分具体执行的是哪个方法。

例:Dog类继承了Animal类,则可以写成:Animal dog = new Dog();

二.对象转型

向上转型:是隐式转换,例如将猫类转换成动物类;

向下转型:是显示转换,例如将动物类转化成猫类,前提是这个动物指向猫;

三.instanceof 关键字

用来判断某个变量是否是一种类型;左边写变量,右边写类型,返回结果是boolean型;

父类的对象不能访问子类中特有的成员(成员变量, 成员方法),例如狗的子类中有摇尾巴,定义为动物类的狗是不能调用这个方法的,如果要访问需要将该狗显示转换;

四.抽象类(修饰符关键字abstract)

1.在一个类中, 某个方法不需要实现, 完全交给子类去实现, 这个方法需要被声明为抽象方法,花括号需要去掉。

2.含有抽象方法的类, 必须被声明为抽象类,抽象类可以没有抽象方法,即使没有抽象方法,也不能被实例化。

3.抽象类无法被实例化(无法使用new)。

4.抽象类的子类没有能力去实现父类的抽象方法的时候,自己也需要被声明为抽象类, 没有实现的方法声明为抽象方法,等待下一个子类去实现。

 作用:使用抽象类的方法实际是定义了一种规则,指向的子类都要去实现这个规则,在维护时只需要修改指向就可以。

五.接口类(关键字:interface 即替换掉了class)

1.接口是一种特殊的抽象类,只能定义方法;类可以实现接口,关键字 implements;接口可以继承接口,关键字 extends;

2.接口也是一种引用类型,例如学生类实现了歌手类接口,就可以创建一个歌手类引用指向学生类对象;

3.接口与抽象类的区别在于抽象类只能单继承,而接口可以同时被实现多个,用逗号隔开;

4.接口中的方法默认修饰符为public,接口中定义的成员变量整个实现类都可以访问,默认修饰符public static final;

5,实现类在实现接口时,如果该接口同时继承了父类接口,也需要实现该父类接口中的方法;

6.接口中的方法如果没有在实现类中全部实现,该类也要被声明为抽象类,即普通类需要全部实现;

7.当实现类同时实现多个接口时,需要避免接口中方法重名的情况;

六.其他

package:包 ,用来解决类名重名的现象;

import:引用 不同的包中的类引用时需要使用;

七.权限修饰符

作用范围如图:

在不同包下面能够访问的权限修饰符只有: pulbic 与protected,但是 protected 必须要有继承的关系才能够访问。

原文地址:https://www.cnblogs.com/wyc1991/p/8996944.html