【后端开辟】晓得java笼统类与笼统要领是什么吗?

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网别的相干文章!

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注