类、接口和抽象类的关系

概念:

抽象类:使用abstract修饰;2、抽象类不能实例化,即不能使用new关键字来实例化对象;3、含有抽象方法(使用abstract关键字修饰的方法)的类是抽象类,必须使用abstract关键字修饰;4、抽象类可以含有抽象方法,也可以不包含抽象方法,抽象类中可以有具体的方法;5、如果一个子类实现了父类(抽象类)的所有抽象方法,那么该子类可以不必是抽象类,否则就是抽象类;6、抽象类中的抽象方法只有方法体,没有具体实现;

接口:1、接口使用interface修饰;2、接口不能被实例化;3、一个类只能继承一个类,但是可以实现多个接口;4、接口中方法均为抽象方法;5、接口中不能包含实例域或静态方法(静态方法必须实现,接口中方法是抽象方法,不能实现)

图解总结:

接口实现类:必须实现父类中的方法
接口:1.方法全是public abstract。2.变量是public static final(故不推荐在接口定义变量)
abstract接口实现类:不必实现父类中的方法
普通继承类:1.必须实现父类中的抽象方法。2.继承父类的属性成员。3.普通方法实现了就需要重写该方法
抽象类:方法可以是抽象的,也可以不是抽象的
抽象继承类:不必实现父类中的方法(不管是抽象还是普通方法)
子类:继承父类的方法属性

例子:

public abstract class C {
    public abstract void abstractTest(); //抽象方法

    public String team="parent";

	//普通方法
    public void abc(){  
        System.out.println("123");
    };
}
//普通类继承抽象类
public class D extends C {
    //抽象方法必须实现
    @Override
    public void abstractTest() {
        System.out.println("子类抽象实现方法");
    }

    //普通方法可实现也可以不实现,实现了就需要你重写该方法的实现
    public void abc(){
        System.out.println("子类abc");
    };

    public void print(){
        this.team = "son";//将子类中的属性的引用指向的是父类属性的地址(即子类继承了父类的属性)
        System.out.println(super.team);  //输出是son
        System.out.println(this.team);  //输出是son

    }

    public static void main(String[] args) {
        D d=new D();
        d.abc(); //输出子类abc

        C c=new D();//父类的引用指向了子类的对象,体现了java对的多态性
        System.out.println(c.team); //输出parent(多态的体现,子类可以调用父类的属性)
        c.abc();//输出子类abc(说明了父类的abc已经在子类中实现了)
        c.abstractTest();

        d.print();

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值