一、多态的概述及其代码体现
多态(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的关系.接口中定义的是改继承体系的扩展功能.