抽象类不能被实例,继承时抽象方法必须实现;父类用抽象类定义,子类继承父类必须重写父类中的抽象的方法(普通方法可以不用重写),最后实例化子类来实现方法的调用避免用到的是父类的方法;
抽象类:
* 抽象类定义的格式
【修饰符列表】 abstract class 类名{}
* 抽象类不能创建对象,不能实例化对象,所以它可以用来给子类继承
* final不能和abstract同时使用
* 抽象类的子类可以是抽象类
* 抽象类虽然不能实例化,但是可以有构造方法,这个构造方法是供子类使用的
* 抽象类中有抽象方法也可以有非抽象方法,抽象方法特点:
* 1.抽象方法,没有方法体,以分号结尾
* 2.前面修饰符列表中有abstract关键字
* 父类中有抽象方法,抽象方法只能在抽象类中,所以子类也必须定义为抽象的类
或者子类重写父类的方法,将其改为非抽象方法
封装的步骤:
1.使用关键字private进行修饰
2.对外提供简单的入口,也就是说以后外部想要访问age属性,
必须通过简单的入口进行访问:
-对外提供两种方法 get和set方法
-set方法的命名规范:
public void setAge(int a){
this.age = a;
}
-get方法命名规范:
public int getAge(){
return age;
}
-set用于修改 get用于读取
对于父类的抽象方法,子类必须进行重写。
抽象类不能被实例化。
抽象类中可以包含普通方法。