黑马程序员_抽象类与接口

            ------ android培训java培训、java基础学习技术总结、期待与您交流! ----------

      一、抽象类

         抽象类与普通类没有什么大的不同,该如何描述事物,就该如何描述事物,
     *    只不过该事物出现了一些看不懂的东西这些不确定的部分,也是该事物的功能,需要明确出现,

          但是无法定义主体,通过抽象方法表示,抽象类中含有抽象方法,含有抽象方法的类就需要定义

           为抽象方法
     *    抽象方法的特点

           1.抽象方法一定在抽象类中,
         * 2.抽象类和抽象方法必须用abstract修饰
         * 3.抽象类不可以用new创建一个对象,因为调用抽象方法没意义
        * 4.抽象类中的抽象方法要被使用,必须由子类复写抽象方法后,建立子类对象调用。
        *    如果子类复写部分抽象方法,那么该子类还是抽象类

      二、接口

       接口:初期理解,可以理解为特殊的抽象类;
     * 当抽象类中的方法都是抽象的,该类可以通过接口的形式来表示;
     * class可以用于定义类
     * interface用于定义接口
     * 接口中定义特点
          常量  final
          抽象方法
     * 接口中都有固定修饰符
          常量:public static final
            方法:public abstract
     * 记住:接口中的成员都是public的
     * 接口是不可以创建对象的,因为有抽象方法,
     * 需要被子类实现,子类对接口中的所有抽象方法全部覆盖后,子类才可以实例化。
     * 否则子类是一个抽象类
     * 类继承类是因为父类中含有可以调用的方法,接口中没有一点可以调用的方法,所以用另一种方式
     * 继承一个接口
     * 接口可以被类多实现
     * java中虽然不支持多继承,但是java用另一种方式实现多继承,多实现
     * 为什么java可以支持多实现呢,因为接口中没有方法主体,所以子类可以任意定义。
     * 一个类在继承一个类的同时,实现多继承。
     * 先继承,后实现可以拓展程序的功能
     * 类实现接口
     * java中支持多继承,但是只是在接口与接口之间
     * 接口继承接口
           一个类要实现多个接口,绝对不允许出现实现的多个接口中含有返回类型不同的同名函数。
     * 接口的特点
       1.对外暴露的原则
       2.接口是功能的拓展
       3.接口可以用来多实现
       4.类与接口的实现关系,一个接口可以实现多个接口,接口与接口之间可以有继承

         示例1如下:

package com.itcast.study;
interface Inter{
	public static final int NUM=3;
	public abstract void show();
}
interface InterA{
	public abstract void show();
	public void method();
}
class Test implements Inter,InterA{
	public void show(){
		System.out.println("show++++++++++++"+NUM);
	}
	public void method(){
		System.out.println("method+++++++++"+NUM);
	}
}
public class InterfaceDemo {	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Test t=new Test();
	     System.out.println(t.NUM);
	     System.out.println(Test.NUM);
	     System.out.println(Inter.NUM);
	     t.show();
	     t.method();
	}
}

  示例2如下:

package com.itcast.study;
interface InterA1{
	public abstract void methodA();
}
interface InterB{
	public abstract void methodB();
	
}
interface InterC extends InterA1,InterB{
	public abstract void methodC();
}
class InterfaceTest implements InterC{
	public void methodC() {
		System.out.println("methodC");
		
	}
	public void methodA() {
		System.out.println("methodA");
		
	}
	public void methodB() {
		System.out.println("methodB");  
		
	}
}
public class InterfaceDemo2 {
	public static void main(String[] args) {
		InterfaceTest it=new InterfaceTest();
		it.methodA();
		it.methodB();
		it.methodC();
	}
}

 

 

            ------ android培训java培训、java基础学习技术总结、期待与您交流! ----------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值