抽象类与接口(java学习记录)

抽象类与接口

一、普通类,抽象类,接口的区别

声明:普通类,抽象类和接口都是类在这里插入图片描述

二、抽象类的相关要点
在这里插入图片描述

三、接口的相关要点
1.接口里面只能定义常量和抽象方法(限制修饰符会自动赋予)
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2.要实现接口,就必须实现接口的所有抽象方法

3.某个类实现多个接口时,创建的对象的引用为某一个接口类型时,则该对象只能调用实现此接口的方法,不能调用实现其他接口的方法,如需调用实现其他接口的方法,则需改变对象引用类型。

四、接口中定义静态方法和默认方法(扩展知识。注:此知识点在开发过程中用的少,一般在一些底层源码中使用,一些开源软件会用到

在这里插入图片描述1.默认方法
java8之后,允许给接口添加一个非抽象的方法具体实现,只需要使用default关键字即可,这个特征被称为默认方法(或扩展方法)。


在这里插入图片描述

2.默认方法与抽象方法的区别在这里插入图片描述
例:

public interface Shape {
	default void test(){
		System.out.println("接口的默认方法");//接口中的默认方法,会继承给实现该接口的子类
	}
double size();
}

public class Shape_interface_test {
	public static void main(String args[]){
	
	Shape a=new Rectangle(10.0,10.0);
	a.test();//父类引用子类对象调用继承接口的默认方法
	Rectangle b=new Rectangle(12.0,10.0);
	b.test();//子类对象调用继承接口的默认方法
}
}

3.静态方法
在这里插入图片描述

public class Test_03_interface_staticfangfa {
	
	public static void main(String args[]){
		A.staticmethod();  //静态方法从属于类,用类来调用
		B.staticmethod();  //类和接口中定义同名静态方法,这两个方法分别从属于A和B
		B b=new B();
		b.defaultmethed(); //对象调用继承接口的默认方法
	}
}

interface A{
	static void staticmethod(){
		System.out.println("接口A中的静态方法");//在静态方法中不能调用默认方法
	}
	
	default void defaultmethed(){
		staticmethod();   //在默认方法中可以调用静态方法
		System.out.println("接口A中的默认方法");
	}
}


class B implements A{
	static void staticmethod(){
		System.out.println("类B中的静态方法");
	}
}

运行结果如下
在这里插入图片描述
四、接口的多继承

在这里插入图片描述
继承只能单继承,接口可以多继承

public class Test_04_interface_duojicheng implements C {

	public void testA(){}   //实现接口C必须实现C中的所有方法
	public void testB(){}
	public void testC(){}
}


interface A{
	void testA();
}

interface B{
	void testB();
}

//接口C继承接口A,完成多继承
interface C extends A,B{
	void testC();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

The Mutents

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值