03.12抽象和接口

03.12
父类强制转型子类

前面是变量,后面是类型 instanceof
找对象
分析有没有共同特性
用封装设置属性
使用多态的地方

不知道产生的是什么对象,在运行的时候返回的时候才知道产生的对象
在这里插入图片描述
1.动态绑定
在这里插入图片描述

2.参数的多态
3.异构集合

异构集合,在一个数组里面,可以存放不同的对象
数组里面存的是地址

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

抽象

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
抽象方法只需要定义,不需要实现
疑问?
1.抽象类和普通类区别
2、为什么要有抽象类

特点:
1.在类的前面加上abstract,当前类就变成抽象类
如果一个类里面定义抽象方法,当前类必须是抽象类

2.在抽象类里面也可以定义普通方法
3.抽象方法里面必须有abstract来修饰才代表抽象方法

区别
1、抽象类里面可以有抽象方法,也可以有普通方法,普通类只能有普通方法
2、
抽象类使用的场景:
(1)、在某些场景下,父类只知道子类包含哪些行为,但是不知道行为的具体实现是什么样的,这个时候就应该定义为抽象类。
(2)、从多个类中去抽象一个父类出来,利用这个父类作为子类的模板,从而避免自己的随意设计。

子类继承父类,如果父类里面有抽象方法,子类必须要重写;父类成员可以重写,可以不重写

一个抽象类去继承另外一个抽象类,抽象方法可以不用重写
在这里插入图片描述
抽象类不能直接实例化
在这里插入图片描述
子类调用父类属性比较频繁,可以设置成public
类只能继承一个父类,无法实现多继承

接口

接口是抽象方法和常量定义的一个集合。

从本质上来讲,接口是一种特殊的抽象类,接口中所定义的方法全是抽象方法,所定义的变量全都是常量。

语法:
接口是一种特殊抽象类
规定接口里面的所有方法都是抽象方法,interface前面默认加上了abstract
在接口里面,所有方法都是抽象方法,省略方法前面abstract,也可以省略访问修饰符,默认public

	public interface IGame{
		//定义常量
		public static final double PI=3.14;
		int m=10;//public static final int m=10;

		//抽象方法
		public abstract void  add(){
		}

		}

接口定义常量 常量名必须大写
接口的作用是什么?
1、接口里面定义的方法全都是抽象方法,子类实现接口的实现,必须实现所有的抽象方法,对子类的方法做了一个约束。不能让子类乱写方法,统一在接口中。
2、解决java中一个类只能单继承的问题,一个类可以实现多个接口,弥补以前单继承不足的问题。
实现接口,实现接口也是一种继承关系。
在这里插入图片描述

接口的使用
1、一个类可以实现多个接口,完成多重继承
2、接口中声明的属性默认就是public static final 类型 的
3、接口中只能定义抽象方法
4、接口可以继承其他接口,一个接口可以继承多个接口
共享用抽象
约束子类的行为用接口

接口继承接口
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Theniceday_99/article/details/88425573