抽像類和抽象方法常用知識點:
(1)抽像類作為被繼承類,子類必須實現抽像類中的所有抽象方法,除非子類也為抽像類。
也就是說,如果子類也為抽像類,可以不實現父類中的抽象方法。但是,如果有一個非抽像類
繼承於抽象子類,需要實現抽象子類,抽象子類的抽象父類的所有抽象方法,新帳舊賬一起算。
(2)抽像類不能用final進行修飾。
(3)抽像類不能被實例化,也就是說你用的時候不能通過new關鍵字創建。
(4)抽像類中可以包含抽象方法和非抽象方法,抽象方法沒有方法體,也就是沒有具體實現,
只是定義了有什麼功能,但是非抽象方法含有方法體。
eg:
抽象父類Person:
package com.lanhuigu.java;/** * 抽像類:不能用final修飾, * 可以包含抽象方法和非抽象方法, * 抽象方法沒有方法體,只是定義功能,沒有實現; * 非抽象方法為正常的方法。 */public abstract class Person {/* * abstract methods */public abstract String eat();public abstract String sleep();/* * non-abstract methods */public String sport() {return "生命在於運動";}}非抽象子類Teacher:
package com.lanhuigu.java;/** * 繼承於抽像類person,必須實現父類中的所有抽象方法*/public class Teacher extends Person {@Override public String eat() {// TODO Auto-generated method stub return "老師吃飯";}@Override public String sleep() {// TODO Auto-generated method stub return "老師睡覺";}}非抽象子類Student:
package com.lanhuigu.java;/** * 繼承於抽像類person,必須實現父類中的所有抽象方法*/public class Student extends Person {@Override public String eat() {// TODO Auto-generated method stub return "學生吃飯";}@Override public String sleep() {// TODO Auto-generated method stub return "學生睡覺";}}抽象子類OthersPerson:
package com.lanhuigu.java; /** * 抽像類繼承自抽像類,可以不用實現其父類的抽象方法*/ public abstract class OthersPerson extends Person { public abstract String call(); }非抽象子類ExtendsOthersPerson繼承於抽象子類OthersPerson:
package com.lanhuigu.java;/** * 必須實現抽象父類OthersPerson,以及OthersPerson父類Person中* 的所有抽象方法,新帳舊賬一起算。 */public class ExtendsOthersPerson extends OthersPerson {@Override public String sleep() {// TODO Auto-generated method stub return "睡覺";}@Override public String eat() {// TODO Auto-generated method stub return "吃飯";}@Override public String call() {// TODO Auto-generated method stub return "打電話";}}測試代碼:
package com.lanhuigu.java;public class TestAbstract {public static void main(String[] args) {Teacher teacher = new Teacher();Student student = new Student();//OthersPerson othersPerson = new OthersPerson();//報錯,抽像類不能被實例化System.out.println(teacher.eat());System.out.println(teacher.sleep());System.out.println(teacher.sport());// 繼承父類非抽象方法System.out.println("==============");System.out.println(student.eat());System.out.println(student.sleep());System.out.println(student.sport());// 繼承父類非抽象方法}}控制台輸出:
老師吃飯老師睡覺生命在於運動
==============
學生吃飯學生睡覺生命在於運動
總結
以上就是本文關於java編程abstract類和方法詳解的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站:
java中staticclass靜態類詳解
Java壓縮文件工具類ZipUtil使用方法代碼示例
Java編程關於子類重寫父類方法問題的理解
如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!