标题: JAVA基础班day10——day12知识点汇总 [打印本页] 作者: 老司机带带我 时间: 2016-11-22 23:02 标题: JAVA基础班day10——day12知识点汇总 day10:
1.继承:
a)研究类与类之间的关系
b)概念:
1)如果多个类具有相同的属性和行为,我们可以抽取出共性的内容定义父类,这时再创建相似的类时只要继承父类即可。
2)当一个类的属性与行为均与现有类相似,属于现有类的一种时,这一个类可以定义为现有类的子类
c)子类会自动拥有父类所有可继承的属性和方法,无需重新定义。并且可以直接使用非私有的父类成员。
d)从类与类之间的设计关系来看,子类必须属于父类的一种时,才会继承。
2.继承格式:
继承的关键字 extends
子类 extends 父类{}
3.继承的好处:
a)提高了代表的可维护性
b)提高了代码的复用性
c)让类与类之间产生了继承关系
4.继承的弊端:
类与类之间的耦合度过高
5.继承特点:
a)java中类只能够单继承,不能多继承,可以多层继承
class Ye extends Object {}
class Fu extends Ye{}
class Zi extends Fu {}
b)所有的类都直接或者间接的继承了 Object类,Object类称为祖宗类
6.继承的注意事项:
a)使用关键字 extends 让类与类之间 产生继承关系
b)父类私有的成员,子类不能继承,因为根本看不到
c)不能为了继承某个功能而随意进行继承操作, 必须要符合 is a 的关系
苹果 is a 水果
男人 is a 人
狗 is a 人 , 这种情况就不能继承了
7.变量的就近访问原则
局部变量>子类成员变量>父类成员变量
day11:
1.接口:
a)概念:当抽象类中的方法都是抽象的时候,java就提供了一种新的表现形式,接口。接口是功能的集合。
b)格式:
定义接口:定义一个接口用interface关键字
public interface Inter{}
实现类实现:用implements关键字
public class InterImpl implements Inter{}
a)接口的特点:
i.不需要被abstract修饰。
ii.类实现接口,可以单实现,还可以多实现。
iii.接口可以继承接口,可以单继承,也可以多继承。
iv.接口与父接口的功能可以重复,均代表要具备某种功能。
b)接口不能直接创建对象,通过多态的方式,由子类来创建对象
c)接口中的成员特点:
成员变量:
只能是final 修饰的常量
默认修饰符: public static final
构造方法:
无
成员方法:
只能是抽象方法
默认修饰符: public abstract
d)类与类,类与接口,接口与接口之间的关系
i.类与类之间:继承关系,单继承,可以是多层继承
ii.类与接口之间: 实现关系,单实现,也可以多实现
iii.接口与接口之间:继承关系,单继承,也可以是多继承
iv.Java中的类可以继承一个父类的同时,实现多个接口
e)抽象类和接口的区别
i.成员的区别
抽象类:
成员变量:可以是变量,也可以是常量。
成员方法:可以是抽象的,也可以是非抽象的。
接口:
成员变量:只能是常量。
默认修饰符:public static final
成员方法:只能是抽象的。
默认修饰符:public abstract
推荐:默认修饰符请自己永远手动给出。
ii.体现的理念不同
抽象类里面定义的都是一个继承体系中的共性内容。
接口是功能的集合,是一个体系额外的功能,是暴露出来的规则。
2.多态:
a)概念:同一个对象,在不同时刻表现出来的不同状态。
举例:水(水,冰,水蒸气)
猫(猫,动物)
b)多态使用的前提:
1,有继承或者实现关系
2,要方法重写
3,有父类(接口)的引用指向子类对象。
c)多态的成员访问特点:
多态时,所有表现形式都是父类的表现形式,
只有调用方法时,运行的是子类重写的方法
1.成员变量
编译看左边,运行看左边。
2:成员方法
编译看左边,运行看右边。
d)多态的好处:
提高了程序可维护性和可扩展性。
e)多态的弊端:
不能访问子类的特有功能, 要想使用,要么向下转型,要么重新创建子类对象。
f)多态的分类
类的多态(普通类,抽象类)
public abstract class Fu {
public abstract void method();
}
public class Zi extends Fu {
public void method(){
System.out.println(“重写父类抽象方法”);
}
}
//类的多态使用
Fu fu= new Zi();
接口的多态
public interface Fu {
public abstract void method();
}
public class Zi implements Fu {
public void method(){
System.out.println(“重写接口抽象方法”);
}
}
//接口的多态使用
Fu fu = new Zi();
g)多态中的转型:
1:向上转型
把子类对象赋值给父类(接口)的引用 自动类型提升 int a = 0; double b =a;
2:向下转型
把父类(接口)的引用强制转换成子类对象
double b = 10.0;
int a = (int)b;
Fu fz = new Zi();(前提)
Zi zf = (Zi)fz;
h)instanceof 关键字, 用于引用数据类型判断
格式: 对象名 instanceof 类名
返回值: true, false
作用:判断某个对象是否属于某种数据类型