接口抽象的示例应用

接口与抽象的应用

抽象
  • 从语法层面进行要求子类语法覆盖
  • 如果一个类包含抽象方法那么这个类就是抽象类
  • 继承抽象类的子类强制要求重写父类抽象方法
  • 关键字 abstract

抽象类不能被new

public abstract class A{
    public abstract void fun();
}
public class B{
  	public void fun(){
        System.out.println("6");
    }
}
class C{
    public static void main(String [] arge){
        A a=new A();//报错不能被new定义抽象类
        A a1=new B();//可以
    }
}

用法

[修饰符] abstract class 类名{
    abstract 数据类型 方法名();
}

父类

public abstract class Shape {
	String color;
	String shapeinfo;
	abstract double computeArea();//抽象类通过子类的重写调用
	public void displayinfo() {
		System.out.println("形状:"+shapeinfo);
		System.out.println("颜色:"+color);
		System.out.println("面积:"+computeArea());//调用子类重写了的抽象类
	}
}

子类

public class Circle extends Shape {
	double r;
	public double computeArea(){//强制重写父类方法computeArea
		double PI=3.1415926;
		return r*r*PI;
	}
}

测试类

public class ShapeTest {

	public static void main(String[] args) {
		Circle circle=new Circle();
		circle.color="red";
		circle.shapeinfo="circle";
		circle.r=2;
		circle.displayinfo();//直接使用父类的方法
    }
}
接口

1、接口是特殊的类:

特殊1:接口中的方法全部都是抽象的(可以省略abstract关键字)

特殊2:接口中的成员变量必须是static final的(静态常量)

无论是否写static final 都是静态常量(没有地方改动成员变量的值)

2、接口中方法都是抽象方法,没有方法,不能修改成员变量的值

3、接口不能进行实例化(不能放在new 后面),所以成员变量的值不可能是哪一个对象的,它必须是整个接口的(即为static)

扫描二维码关注公众号,回复: 11210577 查看本文章

4、这个特殊的类有自己的关键字:public interface 接口名

5、继承接口用:public class 接口实现类 implements 接口名

6、接口实现类需要将所有抽象方法重写

定义

public interface A{
    //    ^--此处不再不用class定义了
    public void fun1();
    public void fum2();
}

继承/实现抽象类

public class B implements A{
    public void fun1(){
        System.out.println();
    }
    public void fun1(){
        System.out.println();
    }
}

Java中不能实现多重继承,但是可以实现多个接口

public class C implements A,B{
    //重写A,B中所有的抽象方法
} 

接口可以有继承(接口继承接口)

public interface B extends A{
    //B接口继承了A接口
    //那么实现B接口的类同样也要重写A,B所有的抽象方法
}
原创文章 11 获赞 7 访问量 462

猜你喜欢

转载自blog.csdn.net/qq_44408913/article/details/103712066
今日推荐