2020-08-07

1)向上转型

父类引用指向子类对象为向上转型,语法格式如下:

fatherClass obj = new sonClass();

其中,fatherClass 是父类名称或接口名称,obj 是创建的对象,sonClass 是子类名称。

向上转型就是把子类对象直接赋给父类引用,不用强制转换。使用向上转型可以调用父类类型中的所有成员,不能调用子类类型中特有成员,最终运行效果看子类的具体实现。

2)向下转型

与向上转型相反,子类对象指向父类引用为向下转型,语法格式如下:

sonClass obj = (sonClass) fatherClass;

其中,fatherClass 是父类名称,obj 是创建的对象,sonClass 是子类名称


instanceof也是和equals相似的判断符号,在 Java 中可以使用 instanceof 关键字判断一个对象是否为一个类(或接口、抽象类、父类)的实例,符号两边分别是对象和类 

这个周我们开始了面向对象的知识实践,对java语言来说,一切皆是对象。把现实世界中的对象抽象地体现在编程世界中,一个对象代表了某个具体的操作。一个个对象最终组成了完整的程序设计,这些对象可以是独立存在的,也可以是从别的对象继承过来的。对象之间通过相互作用传递信息,实现程序开发。

继承:程序中的继承是指子类拥有父类的全部特征和行为,这是类之间的一种关系,Java 只支持单继承。

封装:封装是将代码及其处理的数据绑定在一起的一种编程机制,该机制保证了程序和数据都不受外部干扰且不被误用。封装的目的在于保护信息

变量:静态变量(或称为类变量),指被 static 修饰的成员变量。实例变量,指没有被 static 修饰的成员变量。

静态变量:在类的内部,可以在任何方法内直接访问静态变量,在其他类中,可以通过类名访问该类中的静态变量。

实例变量:在类的内部,可以在非静态方法中直接访问实例变量,在本类的静态方法或其他类中则需要通过类的实例对象进行访问。

super可以调用父类的方法或属性,super() 必须是在子类构造方法的第一行 

this可以调用当前类的方法或属性,this()必须是在当前类构造方法的第一行

方法重载: 在当前类有两个或以上方法名相同的方法称为方法重载,判断方法的条件是参数的数量和类型的不同。重载只在一个类里面实现

方法重写:在子类中如果创建了一个与父类中相同名称、相同返回值类型、相同参数列表的方法,只是方法体中的实现不同,以实现不同于父类的功能被称为方法重写,方法重写需要在子类父类中进行

注意:

1.重写的方法可以使用 @Override 注解来标识2.父类的成员方法只能被它的子类重写。3.声明为 final 的方法不能被重写。4.声明为 static 的方法不能被重写,但是能够再次声明。5.构造方法不能被重写。6.子类和父类在同一个包中时,子类可以重写父类的所有方法,除了声明为 private 和 final 的方法。7.子类和父类不在同一个包中时,子类只能重写父类的声明为 public 和 protected 的非 final 方法。8.如果不能继承一个方法,则不能重写这个方法。

多态特性:它是指在父类中定义的属性和方法被子类继承之后,可以具有不同的数据类型或表现出不同的行为,比如在一个家中爸爸会开车,他的儿子也继承了他爸会开车,但是儿子的具体开车风格又和他爸不一样,可能大儿子开车很快,二儿子开车就很稳。

类分为具体类和抽象类,我们以前接触的都是具体类,而抽象类则是用abstract修饰的类。

使用规则:

抽象类和抽象方法都要使用 abstract 关键字声明。

如果一个方法被声明为抽象的,那么这个类也必须声明为抽象的。而一个抽象类中,可以有 0~n 个抽象方法,以及 0~n 个具体方法。

抽象类不能实例化,也就是不能使用 new 关键字创建对象

接口:

接口中定义的对象必须初始化

一个接口可以有多个直接父接口,但接口只能继承接口,不能继承类

一个类可以继承一个父类,并同时实现多个接口,implements 部分必须放在 extends 部分之后。

一个类实现了一个或多个接口之后,这个类必须完全实现这些接口里所定义的全部抽象方法(也就是重写这些抽象方法)

你可能感兴趣的:(2020-08-07)