面向对象(抽象类和接口)

抽象类和接口

抽象类:

什么是抽象类: 抽象类就是指在类中去定义方法,但是不去实现它,由继承它的子类去实现,简单来说就是拥有抽象函数的类称作抽象类。
什么是抽象函数 从代码上来说就是只有方法的生命,没有实现,从现实生活中来说,当我们发现了某一类事物具有相同的行为,但是他们执行行为的方式又各不相同,在此情况下,我们对方法进行抽取,只保留方法的声明不去实现,而是由他们的子类去实现。
注意 抽象类不一定包涵抽象函数。继承抽象类的子类要么实现父类的抽象函数或者继续声明下去,让自己的子类去实现。

//定义一个抽象类动物
abstract class Living{
	public abstract void eat();
}
class Dog extends Living{
	//实现了父类中的方法
	public void eat(){
		System.out.println("狗吃骨头");
	}
}
class Cat extends Living{
		//实现了父类中的方法
	public void eat(){
		System.out.println("猫吃鱼");
	}
}

1.抽象类是否由构造方法:
有的,抽象类的子类要创建对象的话,必须要调用父类的构造方法,如果父类没有构造方法的话,那么子类将无法访问,无法创建对象。抽象类的构造方法只能是protected
2.抽象类是否可以去创建对象:
不可以,抽象类只有对方法的声明,没有对方法具体的实现,
3.抽象类和一般类的区别:
抽象类与一般类的唯一区别,就在于抽象类具有抽象函数。
4.抽象函数不能和那些关键字连用:
final,private,static
因为,当final修饰类的话,表示该类不能被继承,修饰函数的话表明该函数不能被重写。
private的话,因为是私有的,所以抽象函数一旦私有了之后,就不能被继承,就不能进行对函数的重写。
static本来就不存在重写,static必须是一个具体的事务。

接口

什么是接口: 接口在许多方面都与抽象类很相似,但是它的目的是指明相关或者不相关类的多个对象的共同行为。从代码上来说一个抽象类中全部都是抽象函数的类可以定义为接口。
接口的定义:

interface A{
	public static final int num=10;
	void show();
}

类与类之间只能单继承,而接口可以多继承。接口和接口之间也可以多继承。
接口和抽象类的区别
1.从变量上来说:
接口:所有的变量必须是 public static final
抽象类:没有限制
2.从构造方法上来说:
接口:没有构造方法,不能创建对象。
抽象类:有构造方法,子类通过构造方法调用构造方法,不能创建对象。
3.从方法上来说:
接口:只能定义为公共的抽象实例方法
抽象类:无限制。

一个简单的抽象类:

interface A{
	void showA();
	void show();
}
interface B{
	void showB();
	void show();
}
interface C extends A,B{
	void showC();
	void show();
}
class Demo implements C{
	public void showA(){}
	public void showB(){}
	public void showC(){}
	public void show(){
	
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值