首页 / JAVA / Java 面向对象概括和总结
Java 面向对象概括和总结
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java 面向对象概括和总结,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4552字,纯文字阅读大概需要7分钟。
内容图文
![Java 面向对象概括和总结](/upload/InfoBanner/zyjiaocheng/619/59979464dcf44dcfae308b51cec24a88.jpg)
Java 面向对象概括和总结
前言
本文章要求对面向对象概念有一定的认知,因为不会特别细节的去说一个概念问题
一、面向对象的三大特性:封装 继承 多态
封装
将对象的属性和方法相结合,通过方法将对象的属性和实现细节保护起来,实现对象的属性隐藏。(封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。)
通常来说,Java修饰符就起到了封装的作用,或者比如设置XX属性的取值和赋值的方法,用于对这些属性的访问权限进行区分
public class Person {
//封装的表现1
private String name;
private int age;
//封装的表现2://在内部进行业务逻辑的控制,外部只调用即可
public void setAge(int age)
{
if(age<18||age>40)//对年龄进行限制
{
System.out.println("年龄必须在18到40之间!");
this.age=20; //默认年龄
}
else
{
this.age=age;
}
}
}
继承
是子类继承父类的特征和行为,使得子类具有父类相同的行为。
也就是说,继承是代码复用的一种形式,即在具有包含关系的类中,从属类继承主类的全部属性和方法,从而减少了代码冗余,提高了程序运行效率。
继承关键字:
extends :继承
implements:实现
附:类用于继承,接口用来实现
类的继承格式:
class 父类 {
}
class 子类 extends 父类 {
}
e.g:
public class Person{
public String name; //姓名
public int age; //年龄
public String sex; //性别
}
//学生继承了人类,同时具有了,姓名、年龄、性别属性
public class Student extends Person{
private String stuNo; //学号
private String department; //所学专业
}
接口的实现格式:
public interface A {
public void eat();
public void sleep();
}
public interface B {
public void show();
}
public class C implements A,B {
}
附:通过以上2个格式,可以得出:子类只能继承一个父类,一个类可以实现多个接口
多态
父类中定义的属性和方法被子类继承之后,可以具有不同的数据类型或表现出不同的行为,使得同一个属性或方法在父类及其各个子类中具有不同的含义
细分:
编译时多态:静态的,主要是指方法的重载
运行时多态:动态的,通过动态绑定来实现强调文本 (多态性的体现 )
多态存在的三个必要条件:
继承
重写
父类引用指向子类对象(e.g:Parent p = new Child();)
多态的实现方式:
重写,接口,抽象类和抽象方法
二、重载、重写
重载:
同一个类中的两个或多个方法可以共享同一个名称,只要它们的参数声明不同
(同名不同参,返回类型可同可不同 e.g:构造器的重载)
重写:
子类中如果创建了一个与父类中相同名称、相同返回值类型、相同参数列表的方法,只是方法体中的实现不同,以实现不同于父类的功能
(同名同参同返回类型)
子类中调用父类的被重写方法:Super 关键字
class Dog extends Animal{
public void move(){
super.move(); // 应用super类的方法
}
}
两者都是多态性的体现:
方法重载是一个类的多态性表现,
方法重写是子类与父类的一种多态性表。
三、抽象类、接口
抽象类 abstract
由abstract修饰的类叫抽象类,abstract修饰的方法叫抽象方法;
抽象的类无法进行实例化,因为他不是具体存在的类,现实生活中如描述动物:哺乳类,爬行类等就相当于抽象类
注意:抽象类里面可以有普通的方法,其他子类在继承这个抽象类时可以不继承这个普通方法,但必须实现这个抽象类的的抽象方法
代码例子:
abstract class 类名{
abstract int 方法名(int x,int y);
注意:抽象方法没有方法体
}
抽象类的特点:
(1)抽象类不能被实例化
(2)构造方法 和 static 方法不能是抽象的
(3)父类的抽象方法往往在子类中实现
(4)抽象类可以具有指向子类对象的对象引用
附:抽象类和普通类的区别?
(1)实例化:普通类可以直接实例化;抽象类不能被实例化,因为它是存在于一种概念而非具体。
(2)继承方面:普通类和抽象类都可以被继承,但是抽象类被继承后子类必须重写继承的方法,除非子类也是抽象类。
接口 interface
接口属于百分之百的抽象类,所以接口中的方法必须全部是抽象方法,无方法体,这也就说明了接口只管规定规则,不管规则的具体实现方式
附:抽象类和接口的区别?
抽象类是对本质的抽象,接口是对动作的抽象(抽象类表示的是,这个对象是什么。 接口表示的是,这个对象能做什么)
相同点:抽象类和接口都是不能被实例化的(因为都是被用做于父类用的,一个继承,一个实现)
不同点:
1.构造方法:抽象类可以有构造方法,接口中不能有构造方法
2.成员变量:抽象类中可以有许多成员变量,接口中没有普通成员变量
3.普通方法:抽象类中包含非抽象的普通方法,接口中的所有方法必须是抽象的,不能有非抽象的普通方法
4.访问类型:抽象类中的抽象方法的访问类型可以是public、protected和默认类型,但接口中的抽象方法只能是public类型的,并且默认的类型为public abstract类型
5.静态方法:抽象类中可以包含静态方法,接口中不能包含静态方法
6.静态成员变量:两者都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static类型(默认也是如此)
7.一个类可以实现多个接口,但只能继承一个抽象类
附一篇关于接口很详细的描述:
JAVA基础——接口(全网最详细教程) 作者:刘扬俊
链接: https://blog.csdn.net/qq_19782019/article/details/80259836.
关于抽象类和接口的使用方向:
当你关注一个事物的本质的时候用抽象类;一般模块方法设计模式用的多,体现重用性
当你关注一个操作的时候用接口;一般系统架构的模块之间的互相通信
动力源泉:如果有帮助到的话,可以点赞,关注或者收藏呀~笔芯 ??
内容总结
以上是互联网集市为您收集整理的Java 面向对象概括和总结全部内容,希望文章能够帮你解决Java 面向对象概括和总结所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。