Java面向对象编程_抽象类与接口——抽象类的实现(正常模式和非正常模式)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_37941471/article/details/88028958

1. 抽象类的实现(正常模式)

正常开发中的标准操作

package day07;
/*
 *  抽象类的实现:
 *      1. 所有的抽象类必须有子类
 *      2. 抽象类的子类必须覆写抽象类的所有抽象方法(子类不能是抽象类)
 *      3. 抽象类的对象通过对象的多态性的子类去实例化的
 *      4. private和abstract不能同时使用
 *
 *  抽象方法的使用规则:
 *      1. 类必须是抽象类,声明前加上abstract
 *      2. 抽象方法在声明前也要加上关键字abstract
 *      3. 抽象方法只声明不实现(即没有方法体)
 */

// 正常模式
public class Test{

    public static void main(String[] args){
        Person per = new Student(); // 实例化子类,向上转型
        per.getPersonInfo(); // 被子类所覆写的抽象方法
    }
}

// 抽象类
abstract class Person {

    private String name;

    public String getName(){
        return this.name;
    }

    public void setName(String name){
        this.name = name;
    }

    public abstract void getPersonInfo(); // 抽象方法
}

// 子类

class Student extends Person{
    public void getPersonInfo(){
        System.out.println("I am a Student");
    }
}

2. 抽象类的实现(非正常模式)

封装具体子类,开发时不首选

package day07;
/*
 *  抽象类的实现:
 *      1. 所有的抽象类必须有子类
 *      2. 抽象类的子类必须覆写抽象类的所有抽象方法(子类不能是抽象类)
 *      3. 抽象类的对象通过对象的多态性的子类去实例化的
 *      4. private和abstract不能同时使用
 *
 *  抽象方法的使用规则:
 *      1. 类必须是抽象类,声明前加上abstract
 *      2. 抽象方法在声明前也要加上关键字abstract
 *      3. 抽象方法只声明不实现(即没有方法体)
 */

public class Test{

    public static void main(String[] args){
        Person per = Person.getInstance() ;
        per.getPersonInfo(); // 被子类所覆写的抽象方法
    }
}

// 抽象类
abstract class Person {

    private String name;

    public String getName(){
        return this.name;
    }

    public void setName(String name){
        this.name = name;
    }

    public abstract void getPersonInfo(); // 抽象方法
    
    public static Person getInstance() {  // 取得A类的对象

        class Student extends Person{
            public void getPersonInfo(){
                System.out.println("I am a Student");
            }
        }
        return new Student();
    }
}

猜你喜欢

转载自blog.csdn.net/qq_37941471/article/details/88028958
今日推荐