接口与继承

6 接口与继承

6.1 对象转型

子类转父类(向上转型) 子类对象一定是父类的一种类型,

父类转子类(向下转型)

父类转子类,有的时候行,有的时候不行,所以必须进行强制转换。
强制转换的意思就是 转换有风险

注意: 没有继承关系的两个类,互相转换,一定会失败

实现类转换成接口(向上转型)

接口转换成实现类(向下转型)

6.2 重写

调用重写的方法
调用就会执行重写的方法,执行子类重写父类后的方法

public class Animalt {

    String name;

    int legs;

    public void run(){

       System.out.println("奔跑");

    }

    public void eat(){

       System.out.println("吃东西");

    }

}

public class Cat extends Animalt {

    @Override

    public void eat(){

       System.out.println("吃老鼠");

    }

    public static void main (String[] args) {

       Animalt a=new Animalt();

       a.eat(); //吃东西

       Cat c =new Cat();

       c.eat(); // 吃老鼠

    }

}

6.3 多态

要实现类的多态,需要如下条件
1. 父类(接口)引用指向子类对象
2. 调用的方法有重写

public class Animalt {

    String name;

    int legs;

    public void run(){

       System.out.println("奔跑");

    }

    public void eat(){

       System.out.println("吃东西");

    }

    public static void main(String[] args) {

       Animalt ac=new Cat(); //父类的引用指向子类对象

       ac.eat(); //吃老鼠

       Animalt ad=new Dog();

       ad.eat(); //吃肉

    }

}

public class Cat extends Animalt {

    @Override

    public void eat(){

       System.out.println("吃老鼠");

    }

}

public class Dog extends Animalt {

    @Override

    public void eat(){

       System.out.println("吃肉肉");

    }

}

6.4 Object类是所有类的父类

(所有的类都是Object类的子类,直接或者间接继承Object类)

Object类提供一个toString方法,所以所有的类都有toString方法

finalize()

当一个对象没有任何引用指向的时候,它就满足垃圾回收的条件
当它被垃圾回收的时候,它的finalize() 方法就会被调用。
finalize() 不是开发人员主动调用的方法,而是由虚拟机JVM调用的。

6.5 抽象类与接口的区别

区别1:
子类只能继承一个抽象类,不能继承多个
子类可以实现
多个接口
区别2:
抽象类可以定义
public,protected,package,private
静态和非静态属性
final和非final属性
但是接口中声明的属性,只能是public

注: 抽象类和接口都可以有实体方法。 接口中的实体方法,叫做默认方法

6.6 默认方法

默认方法是JDK8新特性,指的是接口也可以提供具体方法了,而不像以前,只能提供抽象方法
Mortal 这个接口,增加了一个默认方法 revive,这个方法有实现体,并且被声明为了default

6.7 UML类图

UML-Universal Module Language
统一建模语言,可以很方便的用于描述类的属性,方法,以及类和类之间的关系

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值