java笼统类与笼统要领是什么?
在类的继续中,假如一个个新的子类被定义,子类变得愈来愈细致,父类变得越发平常和通用,类的设想应当保证父子类能够同享特性,偶然将父类设想得异常笼统,使得父类没有细致的实例,如许的类叫做笼统类;平常当我们设想一个类,不需要建立此类的实例时,能够斟酌将该类设置成笼统类,让其子类完成这个类的笼统要领
笼统类(abstract class)
用abstract 关键字来润饰一个类时,这个类叫作笼统类。笼统类是它的一切子类的大众属性的鸠合,是包含一个或多个笼统要领的类。
笼统类能够看做是对类的进一步笼统。在面向对象范畴,笼统类重要用来举行范例隐蔽。
笼统类的特性:
( 1 ) 不可被实例化
(2)笼统类是有组织器的(一切类都有组织器)
(3)笼统要领地点的类,一定是笼统类(由于笼统要领是没有要领体的,假如地点的类不是笼统类,那末该类能够实例化对象,挪用笼统要领,然后无要领体去细致完成功用,则抵牾)
(4)笼统类能够没有笼统要领的
//笼统类 abstract class Person { String name; public Person(){}//笼统类的组织要领 public abstract void dink();//笼统要领,无{}要领体 public void eat(){ //非笼统要领 }; } class Student extends Person{ @Override public void eat() { System.out.println("用饭"); } @Override public void dink() { System.out.println("喝水"); } }
笼统要领(abstract method)
abstract润饰的要领为笼统要领,一切的笼统要领必需存在于笼统类中。
在笼统类中定义的要领称为笼统要领,这些要领只要要领头的声明,而用一个分号来替代要领体的定义,即只定义成员要领的接口情势,而没有细致操作。
笼统要领的特性:
(1)花样,没有要领体,包含{ },比方 public abstract void dink();
(2)笼统要领只保存要领的功用,细致的实行,交给继续笼统类的子类,由子类重写改笼统要领
(3)假如子类继续笼统类,并重写了父类的一切的笼统要领,则此子类不是笼统类,能够实例化的
(4)假如子类继续笼统类,没有重写父类中一切的笼统要领,意味着子类中另有笼统要领,那末此子类必需必需声明为笼统的。
上面的例子中,Student子类继续笼统父类,自重写了eat()笼统要领,没有重写drink()笼统要领,会报错,解决要领是把drink()要领也重写了,或许把Student也变成笼统类
笼统类的应用场景
笼统类平常在应用多态时,比较实用
以上就是晓得java笼统类与笼统要领是什么吗?的细致内容,更多请关注ki4网别的相干文章!