java 基础知识二(抽象类‘、接口)

  • 1.抽象类---abstract
       当父类的方法不确定时候,可以abstract关键修饰这种方法,可以修饰这种方法,同样修饰这样类:
1)当一个类继承父类是抽象类,子类必须实现父类其中所有的抽象方法
2)   抽象方法必须在抽象类,抽象方法在父类不能实现 只能是这样 abstract public void cry();没有主体
3) 抽象类 不能实例化; anmial an=new anmial() 出现问题
4) 抽象类没有abstract方法,不能有主体  
主体: abstract void cry(){   }

public class demo_2 {
	anmial an =new anmial();//会报错 抽象方法不能实例会
	Cat cat=new Cat();
}

abstract class anmial{
	String name;
	int age;
	
	//动物会叫,不知道会怎样去叫 ---必须要抽象
	//抽象方法在抽象类中  抽象类同样继承
	abstract public void cry();
}
//当一个类继承父类是抽象类,子类必须实现其中所有的抽象方法
class Cat extends anmial{
	
	public void cry()
	{
		//实现;不会报错
	}
	
}
  • 2. 接口----实现多继承和多态
class 类名 implement interface
{
   
}
     1). 实现接口的话,必须实现接口中所有的方法
     2). 接口不能实例化,接口中所有方法不能用主体
     3).调用接口 接口过程有变量{但是变量不能用private 和 protected 修饰,变量要初始化}---接口中变量都是static类型,并且接口中变量常变量必须要初始化---接口中变量本质上静态的且final类型。
     4).一个接口不能继承其他类  可以继承其他接口;但是实现接口时候除了实现本接口中方法,还要实现继承的接口中方法

/**
 * 
 */
package ExtendsDemo;

/**
 * @author 
 *
 */
public interface USB extends kkk {
	int a=0;//static 类型且 final
	public void start();
	public void stop();
}

interface kkk{
	public void fry();
}
//一个类实现多个接口
class Camera implements USB,kkk
{
//当一个类实现某个接口,必须该类实现接口所有方法
	@Override
	public void start() {
		// TODO Auto-generated method stub
		System.out.println("我是相机 开始工作");
	}

	@Override
	public void stop() {
		// TODO Auto-generated method stub
		System.out.println("我是相机 停止工作");
	}

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

class Phone implements USB
{

	@Override
	public void start() {
		// TODO Auto-generated method stub
		System.out.println("我是phone 开始工作");
	}

	@Override
	public void stop() {
		// TODO Auto-generated method stub
		System.out.println("我是phone 停止工作");
	}

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

class Computer{
	
	public void USeUsb( USB usb)
	{//多态,电脑自己识别调用不同实例
		usb.start();
		usb.stop();
	}
}

两者区别:
      1. 抽象类可以为成员方法提供实现的细节,但是接口 只能有public abstract方法 不能有private或者protected修饰成员方法 接口方法都是public
     2.抽象类成员变量各种类型,但是接口中变量只能是public static静态变量
     3.接口中不能用静态代码块或者静态的方法
    4.接口不能继承其他类,继承其他的接口,一个类只能继承一个抽象类但是实现多个接口(接口只能继承接口,类只能继承一个抽象类)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章