1、抽象类:使用abstract修饰的类
抽象方法:使用abstract修饰的方法
包含抽象方法的类必须是抽象类,但是抽象类可以不包含抽象方法。
抽象类是需要被继承的,抽象方法是需要被重写的,建议重写抽象类中的所有方法(包含非抽象方法)。
抽象类是不能被实例化的,只能进行继承,然后向上造型该类,实现不同的行为。
抽象方法只有方法的定义,没有具体的实现,需要被重写。
2、抽象类的意义:
封装共有的行为和属性(代码复用)
为所有的派生类提供统一的类型(向上造型)
可以包含首项方法,为所有派生类提供统一的入口,派生类的具体实现不同,但是入口是一致的。
3、类的设计规则:
将派生类的共有属性和行为,抽到超类中。
派生类的行为都一样,设计为普通方法。
派生类的行为都不一样,设计为抽象方法,需要派生类进行继承然后重写。
4、抽象类的例子:
public abstract class Color{
public void show(){
}
}
class Red extends Color{
public void show(){
System.out.println("我是红色");
}
}
class Blue extends Color{
public void show(){
System.out.println("我是蓝色");
}
}
1234567891011121314
public class Demo{
public static void main( String[] args){
Color c1 = new Red();
Color c2 = new Blue();
c1.show();
c2.show();
}
}
12345678
输出:
我是红色
我是蓝色
12
5、抽象方法的例子:
public abstract class Teacher{//抽象类
abstract public void teaching();//抽象方法
}
public MathTeacher extends Teacher{ 郑州祛胎记治疗价钱 http://m.zykdbhk.com/
@Override
public void teaching(){//重写抽象方法
System.out.println("数学老师讲课");
}
}
public EnglishTeacher extends Teacher{
@Override
public void teaching(){//重写抽象方法
System.out.println("英语老师讲课");
}
}
123456789101112131415
public class Demo{
public static void main(String[] args){
Teacher lee = new MathTeacher();
Tacher tom = new EnglishTeacher();
lee.teaching();
tom.teaching();
}
}
12345678
输出:
数学老师讲课
英语老师讲课
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。