黑马程序员技术交流社区
标题:
【厦门校区JavaEE就业10期-每日总结】多态、抽象类、接口
[打印本页]
作者:
厦门校区
时间:
2019-8-19 18:41
标题:
【厦门校区JavaEE就业10期-每日总结】多态、抽象类、接口
今天我们学习了面向对象三大特性的最后一个多态。请按照自己的理解回答下面问题:
1.接口和抽象类的区别?
2.继承和实现的区别?
3.多态有什么好处?
4.什么时候需要用到向上转型?什么时候需要用到向下转型
作者:
张培聪
时间:
2019-8-19 20:09
本帖最后由 张培聪 于 2019-8-19 20:24 编辑
1.接口和抽象类的区别?
一.成员组成部分:抽象类:成员变量,常量,(各种)方法
接口:只有常量,(各种方法)
二.抽象类是对共有行为的抽取和约束
接口是对特有行为的抽取和约束
三.抽象类对类和类的耦合性较大
接口解耦合了
四.思想区别:抽象类是 is a的关系 更注重是不是
接口是like a 的关系 更注重有没有
2.继承和实现的区别?
继承是类与类之间或者接口与接口之间的关系 使用extends ,接口可以继承多个,但类只能继承一个
实现是接口和类之间的关系,使用implements ,接口可以多实现
3.多态有什么好处? 为什么使用多态? 因为程序的可扩展性低,所以才使用多态
提高了程序的可扩展性,利用多态访问特点使方法具有通用性,及一个方法可以给所有子类调用(前提子类必须重写父类方法才有意义)
4.什么时候需要用到向上转型?什么时候需要用到向下转型
向上转型 只能访问父类的成员属性,当不需要使用到子类的成员时就可以使用向上转型
向下转型 当你想要访问子类独有成员时,那就需要用到向下转型
作者:
林增龙
时间:
2019-8-19 21:10
今天我们学习了面向对象三大特性的最后一个多态。请按照自己的理解回答下面问题:
1.接口和抽象类的区别?
答:①抽象类是共性的抽取,接口是功能的拓展
②抽象类只能继承一个,但是接口可以实现多个
2.继承和实现的区别?
答:继承只能单继承,不能多继承;实现可以单实现,也可以多实现
3.多态有什么好处?
答:提高的代码的可拓展性,可以使用父类/接口作为方法的参数列表的参数类型,所有的子类或者实现类都可以传递进来
4.什么时候需要用到向上转型?什么时候需要用到向下转型
答:向上转型:只访问父类子类的共有成员,不访问子类的特有成员
向下转型:当要访问子类中的特有成员时用向下转型
作者:
吴继辉
时间:
2019-8-19 21:19
1.接口和抽象类的区别?
答:
(1) 成员区别
抽象类:变量,常量;有构造方法;有抽象方法,也有非抽象方法
接口:常量;抽象方法
(2) 关系区别
类与类:继承,单继承
类与接口:实现,可以单实现,也可以多实现
接口与接口:继承,单继承,多继承
(3) 设计理念区别
抽象类:对类抽象,包括属性、行为,完成
接口:对行为抽象,主要是行为
2.继承和实现的区别?
答:
抽象类:更多的是体现对共性的抽取,对共有行为的约束
实现:接口的使用更多的是体现对特有行为进行约束
3.多态有什么好处?
答:
方法的参数类型用父类类型去接收,所有子类对象都可以传递,提高了程序的扩展性
使用多态的前提条件:
a、有继承或者接口实现关系
b、子类需要重写父类的方法(既使运行方法时可以访问子类自己写的方法)
c、父类引用指向子类对象
4.什么时候需要用到向上转型?什么时候需要用到向下转型
答:
向上转型:父类引用指向子类对象,即子类对象向上提升为父类
向下转型:向上转型后,当对象需要再引用子类的方法内容时,需要将父类引用,向下转为对应的子类类型
注意:向下转型必须转到之前向上转型所对应的对象
作者:
林建邦
时间:
2019-8-19 21:41
1. 成员区别:
(1)抽象类
变量,常量;有构造方法;有抽象方法,也有非抽象方法
(2)接口
常量;抽象方法
关系区别:
(1)类与类
继承,单继承
(2)类与接口
实现,可以单实现,也可以多实现
(3)接口与接口
继承,单继承,多继承
设计理念区别:
(1)抽象类
对类抽象,包括属性、行为
(2)接口
对行为抽象,主要是行为
2. 类只能继承一个,接口能多实现
3. 提高程序的扩展性。定义方法时候,使用父类型作为参数,在使用的时候,使用具体的子类型参与操作
4. 父类引用指向子类对象就用到向上转型
访问子类独有成员就用到向下转型
作者:
唐熙
时间:
2019-8-19 21:44
1. 接口和抽象类的区别?
①抽象类是共性的抽取,接口是功能的拓展;
②抽象类只能继承一个,但是接口可以实现多个。
2.继承和实现的区别?
①格式不同:继承用 extends关键字;实现用implements关键字。
②关系不同:继承用于类与类、接口与接口的关系;实现用于类和接口的关系;
③继承支持多级继承,但不支技多个继承;实现可以支持多个接口。
3.多态有什么好处?
消除了类之间的耦合关系,大大提高了程序的可扩展性和可维护性。
4.什么时候需要用到向上转型?什么时候需要用到向下转型
当子类作为对象代表父类时,需要向上转型;
当需要使用子类特有成员时,需要向下转型。
作者:
jvee10Huanyuan
时间:
2019-8-19 21:48
1.接口和抽象类的区别?
在抽象类中,抽象方法本质上是定义接口规范:即规定高层类的接口,从而保证所有子类都有相同的接口实现,这样,多态就能展现出优点。
如果一个抽象类没有字段,所有方法全部都是抽象方法,就可以把该抽象类改写为接口:interface。
接口定义了纯抽象规范,一个类可以实现多个接口;
接口也是数据类型,适用于向上转型和向下转型;
接口的所有方法都是抽象方法,接口不能定义实例字段;
2.继承和实现的区别?
Java中一个类只允许单继承,所有类最终的根类是Object
而一个类可以有多个接口实现;
他们都适用于向上转型和向下转型;
3.多态有什么好处?
多态是同一个行为具有多个不同表现形式或形态的能力。
1. 减小耦合性
2. 可替换性
3. 可扩充性
4. 灵活性
5. 简化性
4.什么时候需要用到向上转型?什么时候需要用到向下转型
1、父类引用可以指向子类对象,子类引用不能指向父类对象。
2、把子类对象直接赋给父类引用叫upcasting向上转型,向上转型不用强制转型。
如Father father = new Son();
3、把指向子类对象的父类引用赋给子类引用叫向下转型(downcasting),要强制转型。
如father就是一个指向子类对象的父类引用,把father赋给子类引用son 即Son son =(Son)father;
其中father前面的(Son)必须添加,进行强制转换。
4、upcasting 会丢失子类特有的方法,但是子类overriding 父类的方法,子类方法有效
5、向上转型的作用,减少重复代码,父类为参数,调有时用子类作为参数,就是利用了向上转型。这样使代码变得简洁。体现了JAVA的抽象编程思想。
作者:
林以聪
时间:
2019-9-1 14:17
1.接口和抽象类的区别?
抽象类的成员:常量,变量,构造方法,抽象方法和非抽象方法
接口的成员:常量和抽象方法
类与类之间是继承关系
类和接口之间是实现关系
接口和接口可以是一个或多个继承
2.继承和实现的区别
继承只能继承一次,并且不能多个继承只能多级继承
实现可以有一个或多个接口中间用“逗号”隔开
3.多态有什么好处
提高程序的可拓展性,缺点是不能访问子类特有的方法
4什么时候需要用到向上转型?什么时候需要用到向下转型
在父类引用子类对象时需要用向上转型
父类向子类对象强转的过程,要注意转型时所匹配的成员,不匹配编译报错
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2