java 中的抽象类

在自上而下的继承层次结构中,位于上层的类更具有通用性,甚至可能更加抽象。从某种角度看,祖先类更加通用,它只包含一些最基本的成员,人们只将它作为派生其他类的基类,而不会用来创建对象。甚至,可以只给出方法的定义而不实现,由子类根据具体需求来具体实现。
这种只给出方法定义而不具体实现的方法被称为抽象方法abstract,抽象方法是没有方法体的(没有{}),在代码的表达上就是没有“{}”。包含一个或多个抽象方法的类也必须被声明为抽象类。使用 abstract 修饰符来表示抽象方法和抽象类。抽象类除了包含抽象方法外,还可以包含具体的变量和具体的方法。类即使不包含抽象方法,也可以被声明为抽象类,防止被实例化。抽象类不能被实例化,抽象方法必须在子类中被实现。
示例代码:

package 抽象类;

public class abstractclass {
    public static void main(String[] args) {
        Teacher t = new Teacher();
        t.setName("liming");
        t.work();
        Student s = new Student();
        s.setName("jim");
        s.work();
    }
}

//定义一个抽象类
abstract class People{
    private String name;
    //使用shift + alt + s 快速生成get、set方法(右击source)
    public String getName() {
        return name;
    }

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

    //定义一个抽象方法
    public abstract void work();
}

class Teacher extends People{
    public void work(){
        System.out.println("I'm teacher,name is " + this.getName() + " 正在授课。");
    }
}

class Student extends People{
    public void work(){
        System.out.println("I'm student, name is " + this.getName() + " 正在学习。");
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值