1、继承 ->is a(你是人,苹果是水果,)
1)语法
public class <子类> extends <父类>{
}
2)子类使用父类的方法
3)子类覆盖父类的方法
父类只定义共性的行为(做什么),如何做(如何吃饭),下沉到子类完成
4)protected 保护
介于public 和 private之间
主要用于继承
访问修饰符 本类 同一包 子类 外部
private Y N N N
friendly(默认) Y Y N N
protected Y Y Y N
public Y Y Y Y
public 可以修饰属性、方法、类
private 可以修饰属性、方法
protected 可以修饰属性、方法
friendly(默认) 可以修饰 属性、方法、类
向上转型 upcasting
First:返回类型的向上转型
int num =10;
long result = num;
父类的引用指向子类的对象,叫做向上转型。
tom是对象的一个引用,可以看做Student类型,也可以看做Person类型
Person tom = new Student();
Second:参数的向上转型
main(String args[]){
int num1 = 10;
int num2 = 20;
add(num1,num2);
}
public static void add(long first,long second){
System.out.println(first+second);
}
向上转型有一个支撑点:继承
好处:工作中去掉很多重复的代码
只针对父类的编程
注意:java只支持单继承(子类最多只能有一个父类)
工作中什么情况下使用继承?
只有需要向上转型的时候用继承
2、多态 has a
什么是多态?
程序在运行期判断对象类型,调用恰当方法(只有在运行期才知道创建哪个类型的对象)
特征:1做什么和怎么做分离
在父类定义做什么,怎么做下沉到子类
父类只定义共性的行为
2让不变的事物和变动的事务隔离
不变的事物:所有的形状都可以绘画
变化的事物:每一种形状化的方式不一样
不变的事物抽象为父类,变化的事物下沉到子
在父类定义的方法,子类重新定义
多态:运行时判断对象类型,调用恰当的方法
特征:父类定义做什么,如何做下沉到子类
针对父类的编程,忽略子类的存在
每个子类实现的方式不同(圆形和三角形画的方式不一样)
对象有两种状态,1编译期状态(父类)
2 运行期状态(子类)
Java支持向上转型,对象的状态在运行期会进行识别
支撑点:方法覆盖 & 向上转型
3、封装
在面向对象程式设计方法中,封装(英语:Encapsulation)是指,一种将抽象性函式接口的实作细节部份包装、隐藏起来的方法。
封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。
要访问该类的代码和数据,必须通过严格的接口控制。
封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。
适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。
public class Student {
/**
* 学生的名称
*/
String stuName;
Student(){
stuName="Tom";
}
/**
* 学生具有学习行为
*/
public void study(){
System.out.println(stuName+"正在学习");
}
}
public class TestStudent {
public static void main(String[] args) {
Student tom = new Student();
tom.study();
}
}
结果:Tom正在学习
效果实现将name封装隐藏,防止外界直接访问。
网友评论