Java抽象类与接口
往日如风_ 人气:0抽象类与接口
1、抽象类
1.1、什么是抽象类
如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类
1.2、抽象类的用法
一个类如果被 abstract 修饰称为抽象类,抽象类中被 abstract 修饰的方法称为抽象方法,抽象方法不用给出具体的实现体。
abstract class Shape{ /* public String name; public int age; public void func(){ System.out.println("ada"); } public static void func2(){ System.out.println("akjdhkjasd"); }*/ public abstract void draw();//抽象方法 }
注意:抽象类也是类,内部可以包含普通方法和属性,甚至构造方法
1.3、抽象类特点(限制条件)
1、使用abstract 修饰的类,就是抽象类
2、使用abstract 修饰的方法,就是抽象方法
3、抽象类不能够进行实例化new 抽象类();
4、里面的成员变量和成员方法都是和普通类是一样的,只不过就是不能进行实例化了
5、当一个普通的类,继承这个抽象类之后,那么这个普通类,必须重写这个抽象类当中所有的抽象方法。
6、抽象类存在的最大的意义就是为了被继承
7、抽象类也可以发生向上转型进一步发生多态
8、当一个抽象类A继承了抽象类B,此时抽象类A可以不重写抽象类B当中的方法
9、当一个普通的类C继承了第8条的A,此时就得重写所有的抽象方法
10、 final不能修饰抽象方法和抽象类
11、抽象方法也不能是private的
12、抽象类当中不一-定有抽象方法,但是如果这个方法是抽象方法,呢么这个类- -定是抽象类
代码示例:
abstract class Shape{ /* public String name; public int age; public void func(){ System.out.println("ada"); } public static void func2(){ System.out.println("akjdhkjasd"); }*/ public abstract void draw();//抽象方法 } abstract class A extends Shape{ //当一个抽象类A继承抽象类Shape时,可以不重写抽象类Shape中的方法 public abstract void func(); } class B extends A{ //出来混迟早得还,父类没有重写 你全写 @Override public void draw() { } @Override public void func() { } } class Circle extends Shape { //普通类继承了抽象类(内有抽象方法),这里报错, 必须重写Shap类当中的抽象个方法 @Override public void draw() { System.out.println("⚪"); } } class Rect extends Shape { @Override public void draw() { System.out.println("♦"); } } class Triangle extends Shape { @Override public void draw() { System.out.println("
加载全部内容
- 猜你喜欢
- 用户评论