C基础学习JAVA-抽象类及接口

抽象类

  1. 抽象类是一种模板模式。抽象类为所有子类提供了一个通用模板,子类可以在这个模板基础上扩展。
  2. 通过抽象类,可以避免子类设计的随意性。
  3. 要点:
    有抽象方法的类才能定义抽象类;
    抽象类不能实例化,不能用new来实例化抽象类,只能new子类对象;
    抽象类只能用来继承;
    抽象方法必须被子类实现。
  4. 抽象方法的意思使得设计与实现分开,父类设计的方法(abstract)只是声明,实现由子类去完成。
    比如:父类Animal(abstract)声明一种抽象方法shout(),子类狗,猫必须实现这个方法,但是两个不同,狗是汪,猫是喵。。

代码

public abstract class Animal {
	String str;//可定义普通属性
	public abstract void run();//抽象方法
	
	public void  breath() {//可定义普通方法
		System.out.println("呼吸!");
	}
}

class Cat extends Animal{

	@Override
	public void run() {
		System.out.println("猫步小跑");
		
	}
	
}

class Dog extends Animal{

	@Override
	public void run() {
		System.out.println("狗刨");
		
	}
	
}

接口

  1. 接口(interface)可以理解为:比抽象类还抽象的抽象类,里面只有常量和方法声明。
  2. 全面专业的实现了:设计规范和具体实现的分离。
  3. 接口就是滚翻,定义的是一组规则,体现了现实世界中“如果你是…则必须能…”,例如人一定能吃饭。
  4. 子类只能implements(实现) interface,不能extends(继承) interface,而且子类中必须实现接口中所有的方法;
  5. 格式:
    [访问修饰符] interface 接口名 [extends 父接口1,父接口2、、、]{
    -常量定义//总是public static final
    -方法定义//总是public abstract
    }
  6. 接口支持多继承。此时实现此接口的类也需要重写父接口中的所有方法。

代码1(接口)

public interface MyInterface {//接口的意义使得设计与实现分离
	//接口里面只有常量和抽象方法
	/*public static final  默认常量,接口中常量定义时写与不写都有*/ String MAX_GREAD = "BOSS";
	int MAX_SPEED = 120;
	
	/*public abstract写与不写都是public abstract*/void test01();
	public int test02(int a,int b);
	
	
	
}

接口里面只有常量和抽象方法。

代码2(子类实现)

public class MyClass implements MyInterface{//接口不同extends,直接用implements(实现)

	@Override
	public void test01() {
		//MyInterface.MAX_GREAD
		System.out.println("test01");
		
	}

	@Override
	public int test02(int a, int b) {
		System.out.println("Myclass.test02");
		return a+b;
	}
	
}

必须实现父接口中的方法。

代码3(接口的继承)

public interface InterfaceA {
	void aaa();
}

interface InterfaceB{
	void bbb();
}

interface InterfaceC extends InterfaceA,InterfaceB{
	void ccc();	
}

class TestClass implements InterfaceC{

	@Override
	public void aaa() {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void bbb() {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void ccc() {
		// TODO Auto-generated method stub
		
	}
	
}

子类必须实现父接口以及父接口的所有父接口中的所有方法(eclipse中有很方便的提示,点击即可自动重写方法)

发布了3 篇原创文章 · 获赞 0 · 访问量 51

猜你喜欢

转载自blog.csdn.net/weixin_44415432/article/details/89527092
今日推荐