标签:没有 必须 取出 out 无法 属性 div 注意 实现
一、为什么要有抽象类
看下面一段代码:
class 狗 { void 叫() { System.out.println("汪汪“); } } class 狼 { void 叫() { System.out.println("嗷嗷“); } }
这两个类中都有相似过程,但是过程中的内容确不相同。可以将这两个类进行抽取提升,建立一个父类。代码如下:
abstact class 犬科 { abstract void 叫(); } class 狗 extends 犬科 { void 叫() { System.out.println("汪汪"); } } class 狼 extends 犬科 { void 叫() { System.out.println("嗷嗷"); } }
将相同的属性和方法提取出来,在父类中形成一个抽象的属性和方法,用关键字abstract表示。而抽像方法的内容是空的,具体内容在子类中实现。所以要注意的是抽象方法定义是没有花括号这个函数体。
包含有抽象属性或方法的类称为抽象类。
抽象类特点:
1. 方法只有声明没有实现时,这个方法就是抽象方法,需要被abstract修饰。抽象方法必须定义在抽象类中,该类也必须用abstract修饰。
2. 抽象类不能被实例化,因为抽象类含有抽象方法,而抽象方法没有具体的函数体,无法实例化。
3. 抽象类必须由其子类实现其所有的抽象方法后才可以实例化,否则其子类仍然是抽象类。
标签:没有 必须 取出 out 无法 属性 div 注意 实现
原文地址:http://www.cnblogs.com/jsddj/p/7468883.html