8.12晨写

8.12晨写

1.多态的好处是什么

1)可以提高代码的复用性,有继承关系保证
2)可以提高代码的扩展性,由多态保证(父类引用指向子类对象)
	多态第二个好处:是以后经常写的
		1)方法的形式参数传递的是一个引用类型(存在子父关系)一定会使用父类型,
		  调用方法的时候,实际参数传递这个父类的子类对象;
		2)方法的返回值问题: 返回的父类型---->需要父类的子类对象;

2.如果在使用多态时出现ClassCastException,说明什么

ClassCastException :属于运行时期异常的一种; 代表"类转换异常"使用多态操作向下转型的时候(使用不当),
				   堆内存中 信息和栈内存信息没有子父关系
        Animal a = new Cat() ; //堆内存是猫 猫是动物
		//Cat c = (Cat)a; //还原成猫 猫是猫
        Dog d = (Dog)a ;//语法没有问题,但是内存中有问题 (猫是狗,错误的)

3.什么是抽象类,抽象类的成员特点

抽象类如何实例化
        有抽象方法(在具体的事物中才能能具体的行为)的类一定是抽象类;
public abstract 返回值类型(参数类型 形式名称.,...) ;
        抽象类的成员特点:
        	成员变量:可以是变量,也是自定义常量
        	成员方法:可以存在抽象方法,也可以存在非抽象方法
        	构造方法:可以存在无参/有参构造方法;分层初始化:先父类初始化,然后再是子类初始化;
        抽象类不能实例化:不能new对象,所以通过抽象类多态来实例化,通过具体的子类进行实例化
        抽象类名 对象名 = new 具体的子类名() ;

4.什么是接口,接口和子实现类的关系是什么

接口:体现的是一种额外功能, 设计理念 "like a"的关系
        接口和子实现类的关系:implments 实现
//接口
interface Mary{
    //成员方法:只能是抽象方法
    public abstract void mary() ;
}
//子实现类
class You implements Mary{
    public viod mary(){
        System.out.println("结婚了,很开心....") ;
    }
}
class Test{
    public static void main(String[] args){
//接口比抽象类还抽象:抽象类都不能直接new对象,接口也不能
        实例化
//接口多态:接口名 对象名 = new 子实现类名() ;
        Mary mary = new You() ;
        mary.mary() ;
    }
}

5.abstract和哪些关键字不能同时使用

抽象类不能实例化,而且它是强制子类必须重写抽象方法;
abstract不能和 static使用:
	static被类名访问.跟类相关,静态方法算不上方法重写;
不能和private使用:
	被private修饰的:只能在当前类访问,而abstract修饰的方法需要被子类重写
不能和final使用
	被final修饰的成员方法,不能被重写; (有的jdk源码中会看到),abstract修饰的方法必须子类重写;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值