JAVA接口JAVA多态JAVA引用类型的转换

接口

1:接口作用:制定规范
-------接口的作用就是把使用接口的人和实现接口的人分开,实现接口的人不必要关心谁去使用,而使用接口的人也不用关心实现的细节

2:接口是什么:是多个抽象方法的集合

3:接口体现了:体现了规范和实现相分离的思想以及低耦合(关联性很低)

定义语法
public interface 接口名{
	//抽象方法1();
	//抽象方法2();
	//抽象方法3();
//接口中的方法都是公共的抽象方法等价于
抽象方法1(); == public abstract void 方法名();
}

类只可以单继承但是可以多重继承
接口可以多个*继承* 此时接口可以继承所有父类接口方法
public interface IWalkable {
	void walk(); //走路
}
public interface ISwimable {
	void swim(); //游泳
}
public interface IAmphibiable extends IWalkable,IWalkable{

}

接口的实现类
作用:实现接口所有没有实体的方法,且可以实现多个接口

语法:
public class 类名 implements 接口名1, 接口名2...{
	//覆盖接口中抽象方法
    //如果不覆盖 要么报错要么变为抽象类
}
注意:子类访问修饰符必须大于或者等于父类的方法
接口创建变量的方法
接口 变量 = new 实现类();

多态

作用:把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,适应多种变化.

多态的好处:降低耦合性

语法:
继承实现
public class Animal{}
public class Dog extends Animal{}
public class Cat extends Animal{}
//当遍历类型和运行不一致的时候多态就产生了

父类 变量名 = new 子类();
Animal d = new Dog();
Animal c = new Cat();

操作的方法:
d.方法();
c.方法();

接口实现
public interface Animal{}
public class Dog interface Animal{}
public class Cat interface Animal{}

接口 变量名 = new 实现类();
Animal d = new Dog();
d = new Cat();  
//Cat和Dog都是属于一个接口的 所以这种操作就是d一只在被子类对象赋值
//然后谁给赋值 到时候d调用的方法就是谁的

操作方法;
d.方法(); //运行类型是Dog调用的方法就是Dog方法
d.方法(); //运行类型是Cat调用的方法就是Cat方法

当多态实现的时候方法调用顺序

在这里插入图片描述

类型转换:

作用:之所以需要强制类型转换是为了防止程序员在不知情的情况下把A类型数据错当成B类型的数据

自动类型转换:把子类对象赋值给父类变量(多态)

此时就是把Animal的多态转换到Object的多态了

Animal a = new Dog();
Object obj = new Dog();

强制类型转换:把父类对象赋值给子类类型变量(该对象的真是类型是子类类型)

子类的功能和属性比父类更强大 所以父类转子类需要强制转换

Animal a = new Dog();
Cat c = new Cat();
Dog d = (Dog)a;
c = (Cat)a;/*这里错误了 因为a的编译类型是Animal 然后运行类型是
Dog  c的编译类型是Cat 所以报错了*/

//大转小自动转 小转大要强转 兄弟之间可以转 父子之间不能转换

Instance
作用:判断一个对象是否是一个类的实例
为什么此处要引出instance对象,在强转的时候可以判断转化到的类型是否和当前类型匹配

语法: boolean bl = 对象A instance 类B ;
如果要是A对象是类B的实例  那么转换是没有问题的  不然存在一个类型转化的异常 classCastException
贴个图

在这里插入图片描述

**

抽象类和接口有什么关系

抽象类:可以实和接口一样做到统一规范的作用 但是抽象类后期用他来实
	  现方法的较多
接口:就是统一规范的作用 里面全部为抽象方法 也就是一个抽象方法的集
     和

多态的好处

  • 可替换性。 多态对已存在的代码具有可替换性。
  • 可扩展性。 增加新的子类不影响已存在类的多态性,继承性,以及其他特性的运行和操作,实际上新增功能更容易获得多态功能。
  • 接口性。 多态是超类通过方法签名。 …
  • 灵活性。 他在应用中提现了灵活多样的操作,提高了使用效率。
  • 简化性
  • 统一规范
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值