抽象类和接口的简单理解

简单地总结一下接口和抽象类:

package com.pingan.toa.asset.facade.test;

/**
 * 
 * @author LIUFEIJING049
 * 总结下来,抽象类和接口:
 * 1. 抽象类是对根源的抽象,接口是对动作的抽象
 * 2. 抽象类里面的方法要么是抽象的,要么就是有方法体的,抽象的方法必须要加关键字abstract
 *    而接口的方法默认就是abstract的,不可以有方法体
 * 3. 抽象类里的变量可以用static,可以用final去修饰,可以是private,可以是public,可以是protected
 *    接口里的变量默认是static final的
 * 4. 继承抽象类的子类,是可以去访问父类的方法和属性的,并且可以对属性进行修改
 *    子类是不可以修改父接口的属性的
 * 5. 抽象类单继承,接口可以多实现
 *    抽象类的功能要远超过接口,但是,定义抽象类的代价高。因为高级语言来说(从实际设计上来说也是)每个类只能继承一个类。
 *    在这个类中,你必须继承或编写出其所有子类的所有共性。虽然接口在功能上会弱化许多,但是它只是针对一个动作的描述。
 *    而且你可以在一个类中同时实现多个接口。在设计阶段会降低难度的。
 */


public class Test {

	public static void main(String[] args) {
		
	      
	   Animal a = new Cat();
	   //a.a = 5;
	   System.out.println(a.talk() + a.a);//对于变量,是没有动态的,依然是父类的变量
	   a.eat(); //如果父类中有而子类没有,调用的是父类的;如果子类也有,那就是子类的
	   // Animal c = new Animal();抽象类不能被实例化
	   
	   Matter human = new Cat();
	   //human.b = 90; 接口的基本数据类型默认是final的,所以是不能再被子类去访问的
	   System.out.println(human.drink() + Matter.b);
		
	   Cat c = new Cat();
	   //c.b = 90; //接口默认static final,所以不能被修改了
	   c.a = 55; //子类是可以修改父类里面的变量值的
	   c.eat();
	   System.out.println(c.a);
		
		
	}

}
抽象类:

package com.pingan.toa.asset.facade.test;

public abstract class Animal {
 
	abstract String talk(); //抽象类里面的方法要么是抽象的,要么就是又方法体的,抽象的方法必须要加关键字abstract

	 int a = 4; //可以用static,可以用final去修饰,可以是private,可以是public,可以是protected
	 public void eat() {
			System.out.println("Animal");
		
	 }
}
接口:

package com.pingan.toa.asset.facade.test;

public interface Matter {
	String drink();//默认是abstract的
	
	int b = 9; //默认是public static final的
	
	
}

Cat继承抽象类和实现接口:

package com.pingan.toa.asset.facade.test;

public class Cat extends Animal implements Matter {

	//public int a = 90;
	Cat(int i) {
		
	}
	
	public Cat() {
		// TODO Auto-generated constructor stub
	}

	@Override
	String talk() {
		// TODO Auto-generated method stub
		return "Cat, miaomiao......";
	}
	
	/*public void eat() {
		System.out.println("hh!");
	}*/

	@Override
	public String drink() {
		// TODO Auto-generated method stub
		return "喝水喝水";
	}

}




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值