抽象类与接口

抽象类

实现抽象的方法
  • 使用abstract修饰
  • 抽象方法无需实现
  • 抽象类无法实例化
public abstract Person{
	......

	public abstract test();
	
}

Person p = new Person(); //编译错误,因为Person时抽象类,无法实例化
抽象类的继承
  • 使用extends继承
  • 子类必须要实现父类(抽象类)的抽象方法。即,子类必须覆写抽象类中的抽象方法
abstract class Person {
    public abstract void run();
}

class Student extends Person {
    @Override
    public void run() {
        System.out.println("Student.run");
    }
}
面向抽象编程

可以使用抽象类去引用子类(实现类)的具体实例
Person p = new Student()

注意事项
  • 抽象类可以存在字段,需要abstract修饰吗?不需要
  • 抽象类可以定于非抽象方法吗? 可以

接口

接口的含义

接口是一种更加抽象的抽象类,不能有字段,所有的方法都是抽象方法。

接口的声明
  • 使用interface修饰,声明一个接口
  • 接口内部的方法,默认都是public abstract修饰的,所以可以省略(写不写一样)
interface Person{
	void run();
	String getName();
}

接口的具体实现
  • 当使用一个具体类去实现接口时,使用implements
  • 一个具体类可以同时实现多个接口
  • 接口内的抽象方法,实现类必须全部实现
class Student implements Person(){
	......
	@Override
	public void run(){System.out.println("run");}

	@Override
	punlic String getName(){
		return Name;
	}
}
接口间的继承
  • 一个接口可以继承另一个接口,使用extends
interface Person{
	void Hello();
}

interface Student extends Person{
	void run();
	void getName();
}
default修饰方法
  • 使用default实现的方法,实现类可以不用覆写
interface Person{
	default void run();
} 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值