Java学习第九天

一、多态的概述及其代码体现

多态(polymorphic)概述
    事物存在的多种形态
多态前提
    要有继承关系
    要有方法的重写
    要有父累引用指向子类对象

二、多态中的成员访问特点(掌握)

多态中的成员访问特点
    成员变量    
        编译看左边,运行看左边
    成员方法
        编译看左边,运行看右边
    静态方法
        编译看左边,运行看右边
    只有非静态的成员方法,编译看左边,运行看右边

三、多态中向上转型和向下转型(掌握)

Person p = new SuperMan();向上转型
SuperMan sm = (SuperMan)p;向下转型

四、多态的好处和弊端(掌握)

多态的好处
    提高代码的维护性(继承保证)
    提高了代码的扩展性(由多态保证)
多态的好处
    可以当做形式参数,可以接受任意子类的对象
多态的弊端 
    不能使用子类的特有属性和行为

五、多态题目分析(掌握)

看下面程序是否有问题,如果有没有,说出结果
class Fu
{
    public void show()
    {
        System.out.println("fu show");
    }
}

class Zi extends Fu
{
    public void show()
    {
        System.out.println("zi show");
    }

    public void method()
    {
        System.out.println("zi method");
    }
}

class TestDemo
{
    public static void main(String[] args)
    {
        Fu f = new Zi();
        f.method();
        f.show();
    }
}
看下满程序是否有问题,如果没有,说出结果
class A
{
    public void show()
    {
        show2();
    }

    public void show2()
    {
        System.out.println("我");
    }
}

class B extends A
{
    public void show2()
    {
        System.out.println("爱");
    }
}

class C extends B
{
    public void show()
    {
        super.show();
    }
    public void show2()
    {
        System.out.println("你");
    }
}

public class TestDuoTai
{
    public static void main(String[] args)
    {
        A a = new B();
        a.show();

        B b = new C();
        b.show();
    }
}

六、抽象类的概述及其特点(掌握)

抽象类的概述
    抽象就是看不懂的
抽象类的特点
抽象类和抽象方法必须使用abstract关键字修饰
    abstract class 类名{}
    public abstract void eat();
    抽象类不一定有抽象方法,有抽象方法的类一定是抽象类或者借口
    抽象类不能实例化,那么抽象类如何实例化呢?
    按照多态的方式,由具体的子类实例化,其实就是多态的一种,抽象类多态
抽象类的子类
    要么是抽象类
    要么重写抽象类里面的所有的抽象方法

七、抽象类的成员特点(掌握)

抽象类的成员特点
    成员变量:既可以是变量爷可以是常亮.abstract是否可以修饰成员变量?不能修饰成员变量
构造方法:有
    用户子类访问父累的初始化
抽象类的成员方法特点
    抽象方法 强制要求子类实现某些事情
    非抽象方法 子类继承的事情,提高代码复用性

八、接口的概述及其特点(掌握)

接口概述
    从狭义的角度来讲就是指java中的Interface
    从广义上来讲就是提供规则的都是接口
接口的特点
    接口用关键词interface表示
    interface 接口名{}
类实现接口使用Implements表示
    class 类名 implements 接口名{}
接口不能创建实例
    那么接口如何实例化
    按照多态的方式来进行实例化
接口的子类
    可以是抽象类,但是意义不大
    可以是具体的类.要重写接口的所有抽象方法(推荐使用)

九、接口的成员特点(掌握)

接口的成员特点
成员变量: 只能是常亮,并且是静态的公开的
    默认的修饰符是:public static final
    建议自己手动给出

十、类与类,类与接口,接口与接口的关系(掌握)

类与类,类与接口,接口与接口的关系
    类与类的关系
    继承关系,只能单继承,可以多层继承
类与接口
    实现关系,可以单实现,也可以多实现
接口与接口
    继承关系,可以单继承,也可以多继承.

十一、抽象类和接口的区别(掌握)

成员区别
    抽象类
        成员变量: 可以是变量也可以是常量
        构造方法: 有
        成员方法:可以抽象,也可以不抽象
    接口
        成员变量:只有常量
        成员方法:只能是抽象方法
区别
    类与类
        继承,单继承
    类与接口
        实现,可以多实现
    接口与接口
        继承,可以多继承
设计理念的区别
    抽象类 被继承体现的是 is a 的关系.抽象类中定义的是该来继承体系的共有功能
接口 被实现体现的是 like a的关系.接口中定义的是改继承体系的扩展功能.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值