java抽象类的继承

package abstractjava;/*
@author wb    
@great forever
i think,therefor i am
*/



public abstract class Person {

    private String name;       //姓名
    private int age;           //年龄
    private String sex;
    private String address;    //地址
    private String telephone;  //电话

    //定义构造方法

    public Person() {}

    public Person(String name, int age, String sex, String address,
                  String telephone) {

        this.name = name;
        this.age = age;
        this.sex = sex;
        this.address = address;
        this.telephone = telephone;
    }

    //定义setter()和getter()方法

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getTelephone() {
        return telephone;
    }

    public void setTelephone(String telephone) {
        this.telephone = telephone;
    }

    //覆写toString()方法
    @Override
    public String toString() {
        return "Person [name=" + name + ", age=" + age + ", sex=" + sex
                + ", address=" + address + ", telephone=" + telephone + "]";
    }

    //使用模板模式,定义好简单模板,打印信息
    /*
     * 模板模式为面向对象设计模式之一,其大概思想(个人理解):
     * 在抽象方法中完成已经确定的内容,而不确定的部分,写成抽象方法并调用
     * 而抽象方法的具体实现,交给继承他的类去具体实现,
     * 这样开发人员只要写好自己的实现部分便可,然后在主方法中,
     * 通过实例化后的抽象类直接调用模板方法便可
     *
     * 以下方法只是一个简单的表示
     *
     * */
    public void display() {

        System.out.println( this );                //公共部分
        System.out.println("-------------------风骚java分割线-----------------");
        getInfo();            //开发人员具体的实现
        System.out.println("-------------------风骚java分割线-----------------");
        System.out.println( "本输出方法采用模板设计模式,以上为学生信息!" );    //公共部分

    }

    //声明抽象方法,打印子类的添加信息
    public abstract void getInfo();


}
package abstractjava;/*
@author wb    
@great forever
i think,therefor i am
*/



public class Student extends Person {

    private String sno;            //学号
    private String className;   //班级

    //定义构造方法
    public Student(String name, int age, String sex, String address,
                   String telephone,String sno,String className) {

        super(name,age,sex,address,telephone);
        this.sno = sno;
        this.className = className;
    }


    //定义setter()和getter()方法
    public String getSno() {
        return sno;
    }

    public void setSno(String sno) {
        this.sno = sno;
    }

    public String getClassName() {
        return className;
    }

    public void setClassName(String className) {
        this.className = className;
    }


    //实现父类抽象方法

    public void getInfo() {

        System.out.println( "学号:" + this.getSno() + "\t班级:" + this.getClassName() );
    }

}
package abstractjava;/*
@author wb    
@great forever
i think,therefor i am
*/

public class main {

    public static void main(String[] args) {
        Person a=new Student("吴勃",23,"男","中国","23432","25038","tongx");
        a.display();
    }
}

猜你喜欢

转载自blog.csdn.net/CSDNwbdream/article/details/84429602