首页 / JAVA / java----面向对象编程
java----面向对象编程
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java----面向对象编程,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3222字,纯文字阅读大概需要5分钟。
内容图文
![java----面向对象编程](/upload/InfoBanner/zyjiaocheng/610/066733f0eabb46128ac2ca63440e108e.jpg)
目录
<一> 面向对象的特征
1. 封装
封装这个特性就是将类中的属性和方法用一些特定的关键字修饰, 使得外部不需要知道内部实现细节, 直接使用即可. 即隐藏内部实现细节, 只暴露出 必要 的信息给类的调用者.
a> private
被 private 关键字修饰的成员, 只能被本类内部成员访问, 不能被其他类访问.
eg1: 本类中访问自己类中的方法, 编译通过.
eg2: 外部类访问 private 关键字修饰的方法, 编译错误.
b> 默认不写
默认不写的成员, 能被同一个包中的类访问, 包外的类无法访问.
eg: Main 类与 Animal 类不在同一个包中, run1()方法默认不写表示只能在该 Animal 类所在的包java0121中访问, 而 Main 类在包java0121外, 因此 animal.run1(); 编译错误; Test 类与 Animal 类在同一个包中, 因此访问可以 run1() 方法.
c> protected
被 protected 关键字修饰的成员, 能被其子类和同一个包的其他类访问.
Cat 类与 Animal 类不在一个包中, 但是是继承关系, 所以可以访问被 protected 关键字修饰的方法.
Cat 类与 Animal 类不在一个包中, 也不是继承关系, 所以不可以访问被 protected 关键字修饰的方法, 否则编译错误.
d> public
被 public 关键字修饰的成员, 能被不同包中的类访问.
e> 访问权限顺序
由低到高: private < 默认不写 < protected < public
2. 继承
类与类之间的一种继承关系( 父子关系 ), 子类继承父类.
在继承时, 子类会继承父类的成员变量和成员方法.
a> extends 关键字
extends 关键字前面写子类的类名, 后面填写父类的类名
public class Animal {
String name = "小动物";
}
public class Dog extends Animal {
}
b> 被 final 关键字修饰
被 final 关键字修饰的类, 不能被任何类继承.
3. 多态
a> 向上转型
创建子类的实例使其指向父类
Dog 为子类, Animal 为父类
Dog dog = new Dog();
Animal animal = dog;
向上转型后, 不能访问子类所特有的方法.
eg: 下面 animal.special();这行代码编译不通过.
b> 动态绑定( 方法重写 )
子类将父类的方法重写后, 使用父类引用调用重写的方法时, 访问到的是子类的方法.
父类
public class Animal {
public void run() {
System.out.println("Animal is " + "running");
}
}
子类
public class Dog extends Animal {
public void run() {
System.out.println("Dog is " + "running");
}
}
测试类
public class Test {
public static void main(String[] args) {
Dog dog = new Dog();
Animal animal = dog;
animal.run();
}
}
运行结果
c> 重载与重写区别
- 重载是在一个类中有一个以上的同名方法. 要求: 参数个数,类型不同.
- 重写是针对有继承关系的两个类, 子类重写了父类的方法. 要求: 重写的方法其父类的访问权限不高于子类.
eg: 父类 Animal 重写的方法 run( ) 的权限为 public
子类 Dog 重写的方法 run( ) 的权限为 protected
因此父类中 run( ) 的权限高于子类该方法的权限, 编译报错.
b> 向下转型
创建父类的实例使其指向子类
Dog dog1 = (Dog) animal1;
animal1 前必须加 (Dog) 进行强制类型转换, 否则编译错误.
Animal animal1 = new Animal();
Dog dog1 = (Dog) animal1;
向下转型后, 可以访问子类的任何方法 (包含父类中没有的方法).
<二> 面向对象中的组合
4. 组合
组合就是其成员变量可以使其他类的实例.
a> 成员变量为其他类的实例
public class Animal {
protected void run2() {
System.out.println( "Animal is " + "running");
}
}
public class Dog extends Animal {
public void run2() {
System.out.println("Dog is " + "running");
}
public class Test {
Animal animal = new Animal();
Dog dog = new Dog();
public static void main(String[] args) {
}
}
内容总结
以上是互联网集市为您收集整理的java----面向对象编程全部内容,希望文章能够帮你解决java----面向对象编程所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。