课程目标:
1、继承
2、继承练习
3、多态
4、多态的使用
5、数据类型
6、内存
7、程序是怎么运行的
1.继承
封装,继承和多态:
封装: 对某一个类的属性或者方法进行封装(私有化private),让可信任额类进行操作和访问,对不可信任的类进行隐藏;提高程序的安全性;
继承:
现实生活中: 儿子继承父亲的财产
一个人只能有一个父亲,一个父亲可以有多个儿子;
一个类只能有一个父类,但是一个父类可以有多个子类(单继承)
如果父亲有,儿子是可以直接用的
如果一个类继承了一个父类,那么他可以使用父类里面的所有的非私有的属性和方法
如果父亲没有,儿子可以自己买
子类可以拥有自己的属性和方法
如果父亲有,儿子也可以再买,用的是自己的
子类可以重写父类的属性和方法,重写之后默认使用自己的
1.1.子类拥有父类的所有的非私有的属性和方法
1.2.子类还可以拥有自己的属性和方法
1.3.子类还可以重写父类的属性和方法,重写之后默认使用自己的
代码(父类):
package com.zhiyou100.day09;
public class Father {
String name;
//会喝酒
public void drinking(){
System.out.println("喝白酒");
}
//会抽烟
public void smoking(){
System.out.println("会抽烟");
}
}
代码(子类):
package com.zhiyou100.day09;
//子类继承一个父类
// class 子类的类名 extends 父类的类名
public class Son extends Father{
//son类继承了father类,子类要拥有父类的所有的非私有的属性和方法
//子类还可以拥有自己的属性和方法
public void tanTou(){
System.out.println("烫头");
}
//子类还可以重写父类的属性和方法 ,重写之后默认使用自己的属性和方法 :直接写父类的方法名
@Override
public void drinking() {
System.out.println("喝红酒");
}
}
测试:
1.4.可以无限向上继承
1.5.一个父类可以有多个子类
2.练习
1.设计一个矩形类,矩形有长和宽的属性,还有求周长的方法;
(1)他有一个子类正方形
求出矩形和正方形的周长;
2.有一个矩形,有长和宽的属性,还有求周长的方法
(1)有一个子类 ,正方形
求矩形的周长,和正方形的周长和面积
3.设计一个形状类Shape,方法:求周长和求面积
形状类的子类:Rect(矩形),Circle(圆形)
Rect类的子类:Square(正方形)
不同的子类会有不同的计算周长和面积的方法
3.多态
多态:一种事物的多种形态:
3.1.多态:
在java中,多态指的是给某一个对象发送一个消息,让对象自行决定采用什么样的行为进行响应
3.2.多态形成的条件:
1.必须有继承关系
2.必须有方法的重写
3.必须有向上转型 -子类的对象赋值给了父类(表现形式)
3.3.例子
让动物吃东西
动物:老虎 猫 狗
指令: 让老虎吃东西-老虎吃肉
让狗吃东西-狗吃骨头
指令: 让所有动物都吃
package com.zhiyou100.day10_03;
//一个java文件里面可以有多个类,但是只能有一个被public修饰的类
//并且,被public修饰的类的类名必须与文件名保持一致
public class Animal {
public void eat(){}
}
class Tiger extends Animal{
@Override
public void eat() {
System.out.println("老虎吃肉");
}
}
class Cat extends Animal{
@Override
public void eat() {
System.out.println("猫吃鱼");
}
}
class Dog extends Animal{
@Override
public void eat() {
System.out.println("狗吃骨头");
}
}
4.多态的使用
设计一个程序:实现饲养员给动物喂食;
动物园里面3中动物,分别是老虎,狗和猫,他们各自有吃的方法;
4.1.饲养员类
4.1.1.参数解释
4.1.2.方法的调用
设计一个合理的程序:
有一个灯泡类
灯泡有发光的方法
,他有两个子类,分别是红灯泡和绿灯泡;
还有一个台灯类,他有一个开灯的方法,实现开红灯,红灯亮,发红光,开绿灯,绿灯亮,发绿光;
5.数据类型
1.基本数据类型:八大基本数据类型;
2.引用数据类型:数组,类,对象,方法,集合。