Java 抽象类

抽象类定义规则
· 抽象类和抽象方法都必须用 abstract 关键字来修饰。
· 抽象类不能被实例化,也就是不能用 new 关键字去产生对象。
· 抽象方法只需声明,而不需实现。
· 含有抽象方法的类必须被声明为抽象类,抽象类的子类必须复写所有的
抽象方法后才能被实例化,否则这个子类还是个抽象类。
格式
abstract class 类名称 // 定义抽象类
{
声明数据成员 ;
访问权限 返回值的数据类型 方法名称(参数…)
{
… 定义一般方法
}
abstract 返回值的数据类型 方法名称(参数…);
// 定义抽象方法,在抽象方法里,没有定义方法体
}

1. 这些条件都是有 原因的,首选想抽象就必须用abstract来修饰类或者方法。
2. 抽象类不能实例化
3. 一个类中如果有抽象方法,那么这个类必须是抽象类
4. 所以如果子类中不重写抽象方法,子类就必须是抽象类
5.抽象类只是类的一种而已,也有成员变量和方法。
6. 子类的实例化是要先访问父类的构造方法的,所以子类的构造方法必须要调用父类的构造方法

//抽象类
public abstract class AbstractPerson {
    int age;
    public AbstractPerson(int age) {
        this();
        this.age = age;
        System.out.println("父类构造方法");
    }
    public AbstractPerson() {
        // TODO Auto-generated constructor stub
    }
    public void eat(){
        System.out.println("吃饭时间到");
    }
    public abstract void play();
}
//子类
public class Student extends AbstractPerson{
    public Student(int age) {
        //父类的构造方法
        super(age);
        //父类中的属性
        super.age=1;
        // TODO Auto-generated constructor stub
    }
    public void play() {
        // TODO Auto-generated method stub
        System.out.println("谁喜欢打篮球");
    }
}

抽象类和普通类的区别

抽象类比普通类多了一个修饰符abstract就多了一些限制和功能

抽象方法和普通方法的区别

抽象方法比普通方法多了个修饰符abstract少了个方法主体

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值