java中抽象类和抽象方法

文章目录

前言

一、抽象类和抽象方法是什么?

1.抽象类

2.抽象方法

二、使用方法

1.实操展示

2.注意事项

总结


前言


一、抽象类和抽象方法是什么?

1.抽象类

        抽象类:如颜色,名字,动物,食物等一类事物的总称,不具体的概念,皆可创建为抽象类

                abstract 关键字 将普通类转换为抽象类

               语法:public/protect abstract 抽象类名{}

package projectMy;public abstract Animal{//创建了一个抽象类 Animal类//some codes
}

2.抽象方法

        抽象方法:例如繁衍,描述形状,计算面积等一类行为的总称,不具体的行为,皆可创建为抽象方法

                abstract 关键字 将成员方法转换为抽象方法 

                语法:abstract void 方法名();

package projectMy;public abstract class Animal {abstract void breed();//创建了抽象方法 breed()方法
}

二、使用方法

1.实操展示

        代码构架:

        (1)创建抽象类 Animal类,创建breed(),feed(),move()抽象方法以及name()方法

package projectMy;public abstract class Animal {abstract void breed();//繁衍方法abstract void feed();//获食方法abstract void move();//移动方法String name() {return "类别:动物界";}
}

         (2)创建抽象类 Bird类,继承 Animal抽象类,实现breed(),move()方法,补充name()方法

package projectMy;public abstract class Bird extends Animal{void breed() {//覆写实现了父类的breed()抽象方法System.out.println("繁殖方式:卵生");}void move() {//覆写实现了父类的move()抽象方法System.out.println("移动方式:飞翔");}abstract void feed();   //不写父类的抽象方法也不会报错,写了是方便记忆,防止遗忘了这个方法String name() {//补充父类的name()方法return super.name()+"鸟类";}
}

        (3)创建 Eagle 类,继承 Bird抽象类,实现feed()方法,补充name()方法,创建main方法

package projectMy;public class Eagle extends Bird{void feed() {//覆写了父类的feed()抽象方法System.out.println("获食方法:捕猎");}String name(){//补充了父类的name()方法return super.name()+"鹰形目鹰科";}public static void main(String[] args) {Eagle eagle = new Eagle();//调用父类覆写的方法,和本类实现父类后的方法System.out.println("鹰");System.out.println(eagle.name());eagle.breed();eagle.feed();eagle.move();}
}

        输出结果:  

        (4)创建 Dove类,继承 Bird抽象类,实现feed()方法,补充name()方法,创建main方法

package projectMy;public class Dove extends Bird{void feed() {//覆写了父类的feed()抽象方法System.out.println("获食方法:采集");}String name() {//补充了父类的name()方法return super.name()+"鸽形目鸠鸽科";}public static void main(String[] args) {Dove dove = new Dove();//调用父类覆写的方法,和本类实现父类后的方法System.out.println("鸽子");System.out.println(dove.name());dove.breed();dove.feed();dove.move();}
}

        输出结果: 

2.注意事项

        抽象类:

                抽象类本身不能实例化创建本类的对象,必须通过子类向上转型

                        语法:抽象类名 对象 = new 子类();

Bird bird1 = new Eagle();
//Eagle类向上转型,赋值给了抽象类的对象 bird1,相当于创建了Bird抽象类对象

        抽象方法:

                 (1)创建抽象方法时,不需要实现,没有“{}”

abstract void feed();

                 (2)抽象方法只能在抽象类中被创建成员方法在抽象类和普通类中都可被创建

                 (3)子类继承了一个抽象父类子类必须实现这个父类中没有被实现的所有抽象方法 

                 (4)抽象子类继承了抽象父类,不必实现父类的抽象方法但建议写上没有实现的抽象方法,避免在下一个继承中,遗忘了父类的某个抽象方法

                 (5)抽象父类的抽象方法,只要被一个子类/抽象子类实现,后续继承的子类便不用再次重写该抽象方法


总结

        以上就是java中的抽象类和抽象方法,简单介绍了抽象类和抽象方法的使用,更多的用处,需要在实际项目中操作才知道,如果对“接口”这个概念不太熟悉,up会在下篇文章中帮你了解一下。

本文链接:https://my.lmcjl.com/post/14167.html

展开阅读全文

4 评论

留下您的评论.