方法,面向对象,构造方法,继承,多态,抽象类,接口
2017-08-10 21:29
519 查看
方法的格式
修饰符 返回值类型 方法名(参数类型 参数名 1,参数类型 参数名 2…) {
函数体;
return 返回值;
}
方法调用的三种方式
方式1:单独调用
sum(x,y);
方式2:输出调用
System.out.println(sum(x,y));
System.out.println(30);
方式3:赋值调用
int result = sum(x,y);
result在这里可以进行操作
System.out.println(result);
ex. public static void int sum(int a,int b){
}
方法的注意事项:
A:方法不调用不执行
B:方法与方法是平级关系,不能嵌套定义
C:方法定义的时候参数之间用逗号隔开
D:方法调用的时候不用在传递数据类型
E:如果方法有明确的返回值,一定要有return带回一个值
方法重载:
在同一个类中,方法名相同,参数列表不同。与返回值类型无关。
方法重写
子类中出现了和父类中一模一样的方法声明,也被称为方
法覆盖,方法复写。父类中私有方法不能被重写
面向对象:::成员变量--属性 成员方法行为。
创建对象:
类名 对象名 = new 类名();
构造方法:构建创造对象时调用的方法。作用:可以给对象进行初始化。
在描述事物时,该事物一存在就具备的一些内容,这些内容都定义在构造方法中
构造方法可以有多个,用于对不同的对象进行针对性的初始化.
多个构造方法在类中是以重载的形式来体现的。
构造方法格式
方法名与类名相同
没有返回值类型,连void都没有
没有具体的返回值
ex. Person(){//无参
age=1;
}
Person (String pname){//有参,从生来就存在
name=pname;
}
只有继承时在构造方法中才可以用this.参数
哪个对象调用了 this 所在的函数,this 就代表哪个对象。并且this只能定义在构造函数的第一行。
继承 class 子类名 extends 父类名 {}
继承有:
单继承:一个子类只能有一个直接父类。
多继承:一个子类可以有多个直接父类。
this:代表一个本类对象的引用。
super:代表一个父类空间。并且super只能定义在第一行
多态前提和体现:
有继承关系
有方法重写
有父类引用指向子类对象
向上转型
从子到父
父类引用指向子类对象
ex. 动物 d = new 猫();
or 用一个方法,调用
向下转型
从父到子
父类引用转为子类对象
ex. if (animal instanceof Dog) {
final Dog dog = (Dog) animal;
dog.kanMen();
}
抽象类和抽象方法必须用abstract关键字修饰
格式
abstract class 类名 {}
public abstract void eat();
抽象类不一定有抽象方法,有抽象方法的类一定是抽象类
抽象类不能实例化
那么,抽象类如何实例化呢?
按照多态的方式,由具体的子类实例化。其实这也是多态的一种,
抽象类多态。
抽象类的子类
要么是抽象类
要么重写抽象类中的所有抽象方法
接口用关键字interface表示
格式:interface 接口名 {}
类实现接口用implements表示
格式:class 类名 implements 接口名 {}
接口不能实例化
那么,接口如何实例化呢?
按照多态的方式,由具体的子类实例化。其实这也是多态的一种,
接口多态。
接口的子类
要么是抽象类
要么重写接口中的所有抽象方法
成员变量
只能是常量
默认修饰符 public static final
修饰符 返回值类型 方法名(参数类型 参数名 1,参数类型 参数名 2…) {
函数体;
return 返回值;
}
方法调用的三种方式
方式1:单独调用
sum(x,y);
方式2:输出调用
System.out.println(sum(x,y));
System.out.println(30);
方式3:赋值调用
int result = sum(x,y);
result在这里可以进行操作
System.out.println(result);
ex. public static void int sum(int a,int b){
}
方法的注意事项:
A:方法不调用不执行
B:方法与方法是平级关系,不能嵌套定义
C:方法定义的时候参数之间用逗号隔开
D:方法调用的时候不用在传递数据类型
E:如果方法有明确的返回值,一定要有return带回一个值
方法重载:
在同一个类中,方法名相同,参数列表不同。与返回值类型无关。
方法重写
子类中出现了和父类中一模一样的方法声明,也被称为方
法覆盖,方法复写。父类中私有方法不能被重写
面向对象:::成员变量--属性 成员方法行为。
创建对象:
类名 对象名 = new 类名();
构造方法:构建创造对象时调用的方法。作用:可以给对象进行初始化。
在描述事物时,该事物一存在就具备的一些内容,这些内容都定义在构造方法中
构造方法可以有多个,用于对不同的对象进行针对性的初始化.
多个构造方法在类中是以重载的形式来体现的。
构造方法格式
方法名与类名相同
没有返回值类型,连void都没有
没有具体的返回值
ex. Person(){//无参
age=1;
}
Person (String pname){//有参,从生来就存在
name=pname;
}
只有继承时在构造方法中才可以用this.参数
哪个对象调用了 this 所在的函数,this 就代表哪个对象。并且this只能定义在构造函数的第一行。
继承 class 子类名 extends 父类名 {}
继承有:
单继承:一个子类只能有一个直接父类。
多继承:一个子类可以有多个直接父类。
this:代表一个本类对象的引用。
super:代表一个父类空间。并且super只能定义在第一行
多态前提和体现:
有继承关系
有方法重写
有父类引用指向子类对象
向上转型
从子到父
父类引用指向子类对象
ex. 动物 d = new 猫();
or 用一个方法,调用
向下转型
从父到子
父类引用转为子类对象
ex. if (animal instanceof Dog) {
final Dog dog = (Dog) animal;
dog.kanMen();
}
抽象类和抽象方法必须用abstract关键字修饰
格式
abstract class 类名 {}
public abstract void eat();
抽象类不一定有抽象方法,有抽象方法的类一定是抽象类
抽象类不能实例化
那么,抽象类如何实例化呢?
按照多态的方式,由具体的子类实例化。其实这也是多态的一种,
抽象类多态。
抽象类的子类
要么是抽象类
要么重写抽象类中的所有抽象方法
接口用关键字interface表示
格式:interface 接口名 {}
类实现接口用implements表示
格式:class 类名 implements 接口名 {}
接口不能实例化
那么,接口如何实例化呢?
按照多态的方式,由具体的子类实例化。其实这也是多态的一种,
接口多态。
接口的子类
要么是抽象类
要么重写接口中的所有抽象方法
成员变量
只能是常量
默认修饰符 public static final
相关文章推荐
- 黑马程序员 Java基础 面向对象:继承、final关键字、抽象类、模版方法模式、接口、多态、Object类
- 7.1面向对象(继承中成员方法关系,final关键字,多态,抽象类,接口)
- 黑马程序员——Java基础---面向对象(继承、多态、抽象类、接口、内部类)
- .net学习之继承、里氏替换原则LSP、虚方法、多态、抽象类、Equals方法、接口、装箱拆箱、字符串
- 黑马程序员 Java面向对象(继承,抽象类,接口,多态,内部类)
- Java类、属性、方法、对象、继承、多态、接口、抽象类...
- Java基础——面向对象——继承、抽象类、接口、多态、包、内部类、异常等
- net学习之继承、里氏替换原则LSP、虚方法、多态、抽象类、Equals方法、接口、装箱拆箱、字符串(转)
- net学习之继承、里氏替换原则LSP、虚方法、多态、抽象类、Equals方法、接口、装箱拆箱、字符串(转)
- JAVA——(2)OOP面向对象、封装、继承、多态、this、构造方法
- 黑马程序员—面向对象(static,封装,继承,多态,内部类,抽象类,接口)总结
- 黑马程序员-Java的面向对象(抽象类、接口、内部类和继承、组合、多态)
- PHP入门教程之面向对象的特性分析(继承,多态,接口,抽象类,抽象方法等)
- java 中什么时候用抽象类,什么时候用 接口(面向对象的继承与多态)
- C#-面向对象的三大特性——多态(虚方法与重写、抽象类、接口)
- 黑马程序员——【Java基础】——面向对象(一)概述、类与对象、继承、抽象类、接口、多态、内部类
- 黑马程序员_Java基础_面向对象(继承、子父类变量和函数以及构造函数特点、final关键字、抽象类、模版方法模式、接口)
- PHP入门教程之面向对象的特性分析(继承,多态,接口,抽象类,抽象方法等)
- 初识JAVA(【面向对象】:pub/fri/pro/pri、封装/继承/多态、接口/抽象类、静态方法和抽象方法;泛型、垃圾回收机制、反射和RTTI)
- C#基础知识复习1代码规范-执行流程(c#)-面向对象-引用命名空间-封装-继承-访问修饰符-虚方法-静态成员-多态-抽象类等