以类的方式组织代码,以对象的形式封装数据。
类是一个模版:抽象,对象是一个具体的实例
public class demo02 {
public static void main(String[] args) {
//静态方法 static
student.say(); //类名+方法名直接调用
//非静态方法
//对象类型 对象名 = 对象值
student student = new student();
student.say();
}
}
//在同一个类当中,只有两个方法都是静态方法,才能在自己本身调用,其他的方法。
//静态方法在类存在的时候就已经加载,而非静态方法是在对象实例化后才会加载
一个类即使什么都不写。也会存在一个构造方法
属性私有:通过private(私有)在属性和方法前进行声明,用户无法直接调用属性与方法。
get/set:提供一些可以操作属性的方法,防止属性无法改变,提供一些public的get set 方法。
一个类继承另一个类的所有属性与方法。子类是父类的扩展
关键词 extends
java中只用单继承
!! 无法直接调用父类的私有属性(private)
public class Studeent extends Person(){
}
super:可以调用父类的方法与属性(public与protect)
当调用父类的构造器时,必须放在子列的第一行
public class Student extends Person(){
super(); //调用父类的构造器
Student student = new Student();
}
instanceof 用于判断两个类型之间是否有关系(子类,父类,父类的父类)
result = preson instance of Teacher;//返回值为布尔类型
引用类型的转换(类型名)变量名
由高转低要强制转换
多态:父类的引用指向子类的对象
把子类转换为父类,向上转换
把父类转换为子类,向下转换,强制转换
方便方法的调用,减少重复的代码
abstract修饰
只有方法的名字没有方法的实现
抽象类的方法必须由继承她的子类来实现
或者说子子类来实现
特点:
接口可以多继承
接口:只有规范,自己无法写方法~专业的约束!约束和实现分离
interface:接口中的所有定义都是抽象的(默认)
implements:实现接口的方法要重写接口的所有方法,可以
接口不可以实例化,接口中没有构造方法
在A类的内部再定义一个B类
原文:https://www.cnblogs.com/guyihan/p/14429003.html