Java 继承与多态之抽象类和接口

 

 

抽象类:用 abstract 声明的类
1、抽象类不能生成对象,其子类可以生成对象,但必须重写抽象父类的抽象方法
2、如果一个类中含有抽象方法,那么该类必须声明为抽象类
3、如果一个类中没有抽象方法,该类也可以声明为抽象类

 

4、抽象类的构造方法可以在子类中被调用

 

public abstract class AbstractClass
{
	private int num1; //普通变量

	private final int num2; //常量

	public AbstractClass()
	{
		//构造函数
	}

	public void method1() 
	{
		//普通方法1
	}

	public void method2() 
	{
		//普通方法2
	}
	..............

	public abstract void abstractMethod1(); //抽象方法1

	public abstract void abstractMethod2(); //抽象方法2

	..............
}

 

 

接口:使用 interface 定义
    1、接口中的方法都是抽象的,其实现类必须要重写所有的方法
    2、接口中所有的方法都是 public 权限的
    3、接口中的变量默认都是 final 型,并且是静态的
    4、实现接口用 implement 

    5、接口没有构造方法

 

 

 public interface class InterfaceClass
 {
    public static final int num1 = 123;

    public void method1();//抽象方法1 

    public abstract void abstractMethod2(); //抽象方法2

    ..............
}

 

 

 


抽象类和接口的区别:
1、成员区别
    抽象类:
        成员变量:可以为变量,也可以为常量
        构造方法:有,但不可以实例化
        成员方法:既可以为抽象,也可以为非抽象
    接口:
        成员变量:静态常量
        构造方法:无
        成员方法:只能是抽象
    2、关系区别
        类与类:单继承,即一个类只能继承一个类
        类与接口:多实现,即一个类可以实现多个接口
        接口与接口:多继承,即一个接口可以继承多个接口
    3、设计理念
        抽象类被继承体现的是“is a”关系,抽象类中定义的是该继承体系的共性功能
        接口被实现体现的是“like a”关系,接口定义的是该继承体系的扩展功能

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值