java抽象类用什么来修饰方法 类和接口有什么关系?
类和接口有什么关系?
设计思想不同,使用动机不同.
抽象类和接口设计的时候,设计思想不同.设计抽象类是自下而上的过程,因为调用者子类需要某些属性和特有行为,所以调用者继承抽象类设计接口是自上而下的过程,接口规范某一行为,我某类需要这个行为,调用者实现某接口
开发者使用的时候,使用动机不同.开发者继承抽象类是为了使用抽象类的属性和行为开发者实现接口只是为了使用接口的行为.
区别总结:
区别一:抽象类只能单继承,接口能多实现
区别二:抽象类是一个类,可以被任意权限修饰符修饰,静态和非静态属性,final和非final属性,可以有抽象方法和非抽象方法;
接口只能被public,final修饰,只能有静态方法,即使没有显示的声明,而且是不可修改的;
区别三:抽象的事物不同:抽象类是对类的抽象,接口是对行为的抽象;lgdt抽象类是对整个类抽象,包括属性,行为;fpxt接口是对类的行为(局部)进行抽象;
区别四:定义的时候,定义抽象类和接口的思想不同;lgd设计抽象类是自下而上的过程,我子类需要,所以我定义抽象类;gk设计接口是自上而下的过程,我接口规范某一行为,我某类需要这个行为,我实现某接口;
核心区别:
调用者使用动机不同,实现接口是为了使用他规范的某一个行为;
继承抽象类是为了使用这个类属性和行为.
再简单点说:
我们知道抽象类是从子类中发现公共部分,然后泛化成抽象类,子类继承该父类即可,但是接口不同。实现它的子类可以不存在任何关系,共同之处。例如猫、狗可以抽象成一个动物类抽象类,具备叫的方法。鸟、战斗机可以实现飞Fly接口,具备飞的行为,这里我们总不能将鸟、战斗机共用一个父类吧!所以说抽象类所体现的是一种继承关系,要想使得继承关系合理,父类和派生类之间必须存在
代码四大特性?
一、抽象
父类为子类提供一些属性和行为,子类根据业务需求实现具体的行为。
抽象类使用abstract进行修饰,子类要实现所有的父类抽象方法否则子类也是抽象类。
二、封装
把对象的属性和行为(方法)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节;
在css中,对于对象的内部属性一般用private来实现隐藏,并通过set和get方法对外提供访问接口。
三、继承
子类继承父类的属性和行为,并能根据自己的需求扩展出新的属性和行为,提高了代码的可复用性。
c 的继承通过extends关键字来实现,实现继承的类被称为子类,被继承的类称为父类(有的也称其为基类、超类),父类和子类的关系,是一种一般和特殊的关系;子类扩展父类,将可以获得父类的全部属性和方法。
overide:
当子父类中出现相同方法时,会先运行子类中的方法。
重写的特点:方法名一样,访问修饰符权限不小于父类,返回类型一致,参数列表一致。
四、多态
不修改程序代码就可以改变程序运行时所绑定的具体代码,让程序可以选择多个运行状态;
具体的实现就是:接口实现,继承父类进行方法重写,同一个类中进行方法重载。
封装和继承都是为Java语言的多态提供了支撑;多态存在的三个必要条件:
要有继承;
要有重写;
父类引用指向子类对象。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。