Java OOP
来源:互联网 发布:水杉建模软件 编辑:程序博客网 时间:2024/06/05 20:56
Java OOP
构造方法
对象被创建时用来初始化对象所调用的方法
- 构造方法名必须和类名一致
- 如果没有自定义构造方法, 会默认定义空构造方法.
继承
extends
继承类 implements
实现接口
特性
- 拥有父类非
private
的属性和方法 - 可以拥有自己的属性和方法(对父类进行扩展)
- 可以用自己的方式重写(覆盖)父类的方法
- 只能继承1个类, 但可以实现多个接口.
对象引用
super
当前对象的父对象引用 this
当前对象的引用
构造方法
用super调用父类的构造方法必须放在子类构造方法的第一句
重载
相同的方法名, 不同的参数, 用来调用不同的方法
java code
int add(int a, int b) { return a + b;}double add(double a, double b) { return a + b;}
重写
覆盖父对象的方法, 使用父对象方法使用super
在重写方法上方加入@Override
注解, 区分普通方法.
java code
class Animal { public void eat() { System.out.println("eat sth"); }}class Dog extends Animal{ @Override public void eat() { System.out.println("eat bone"); }}public class OverrideDemo { public static void main(String args[]){ Animal animal = new Animal(); Animal dog = new Dog(); animal.eat(); dog.eat(); }}
多态
父对象的引用指向子对象, 再进行操作.
java code
abstract class Animal { abstract void eat();}class Cat extends Animal { @Override public void eat() { System.out.println("eat fish"); }}class Dog extends Animal { @Override public void eat() { System.out.println("eat bone"); }}public class PolyDemo { public static void main(String[] args) { Animal cat = new Cat(); Animal dog = new Dog(); cat.eat(); dog.eat(); }}
访问控制
可以修饰类, 变量和方法
抽象类
abstract class
1. 不能被实例化.
2. 有抽象方法的类是抽象类, 反之不成立.
3. 抽象方法只有声明, 没有实现.
4. 构造方法和类方法(静态方法)不能声明为抽象方法.
5. 子类必须给出抽象方法的具体实现, 除非子类也是抽象类.
接口
interface
除了以下2点外与抽象类相同
1. 方法是自动被public
修饰的抽象方法
2. 变量自动被public static final
修饰
包
创建包
在源文件第一行声明包名 package PKG_NAME;
导入包中的类
包的组织结构与目录结构相同, 用.
分隔 import PKG_NAME.CLASS
导入包中特定类 import PKG_NAME.*
导入包中所有类
内部类
可以访问外部类中成员, 无访问修饰符限制.
成员内部类
- 不能存在任何static的变量和方法
- 依附于外围类, 只有先创建了外围类才能够创建内部类
声明方法
Outer outer = new Outer();Outer.Inner inner = outer.new Inner();
局部内部类
- 作用域只有在方法内
匿名内部类
- 只有父类的名字, 直接继承/实现.
- 只能使用方法作用域中的
final
局部变量
静态内部类
- 创建不需要依赖于外围类
- 只能使用外围类的
static
成员变量和方法
0 0
- java OOP
- Java OOP
- JAVA OOP
- JAVA-OOP
- Java OOP
- Java OOP
- java OOP
- java-oop
- Java OOP
- Java OOP
- Java OOP
- Java OOP
- Java OOP 随心笔记
- JAVA多线程与OOP
- 最近在学Java OOP
- Java OOP ch1
- Java OOP ch2
- 面向对象 java oop
- 事务的四大特性
- jQuery插件原理及封装
- 计算C#代码运行时间
- Unity 闪面问题
- Firebug宣布停止开发更新
- Java OOP
- C# SqlBulkCopy类大批量数据存入数据库
- 第5章 Cucumber的Tags
- Android上支持矢量图标最简单的方法
- STL六大组件
- Dragonbaord 410c Python交互设计(2)——天气预报demo数据获取
- MyBaits批量增删改查
- vim&git 高级
- java反射对实体类取值和赋值