Java抽象类和接口

Java抽象类和接口

1、抽象类

  • 关键字:abstract

  • 不能new这个抽象类,只能被子类实现。

  • 类只能单继承

  • 抽象类可以有抽象方法,也可以有普通方法;但是抽象方法被须在抽象类中。

  • 抽象类可以有普通成员变量。

  • 继承了抽象类的普通子类,必须重写抽象类的所有抽象方法。

    public abstract class Demo1{
    
    	private int a;
    	
    	{
    		a = 5;
    	}
    	
    	public void run(){
    		System.out.println("普通run方法");
    	}
    	
    	public abstract void say();
    	
    }
    
    public class Demo2 extends Demo1{
    	@override
    	public void say(){
    		System.out.println("实现了抽象方法say");
    	}
    }
    

2、接口

  • 关键字 interface

  • 没有构造方法

  • 不能new接口,只能被子类实现。

  • 接口能够多实现,关键字implements

  • 方法默认public abstract,抽象方法不能有方法实现

  • 可以有默认方法:default

    • 可直接调用静态方法,实现类继承该方法,并能够重写
    • 若一个类实现的两个接口有同样的默认方法,则实现类必须重写该默认方法
    • 若一个类继承的父类和实现的接口出现同名方法,类优先
  • 可以有静态方法:public static

  • 接口变量都是public static final的,必须赋初始值

  • 实现了接口的类,必须重写接口的所有抽象方法。

    public interface UserService{
        
        public static final int AGE = 99;
        
    	void add(String name);
    	void delete(String name);
    	void update(String name);
    	void query(String name);
        
        public static void f1(){
            
        }
        
        default void f2(){
            f1();
        }
        
    }
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值