海外网络搭建sem和seo的区别
继承
使用关键字extends实现:public class 类名 extends 父类名{}
this关键字代表本类对象的引用
super关键字代表父类对象的引用
1.一旦重写了类的构造方法,那么就不会提供默认的无参构造方法了。
一个类如果没有父类,默认继承object类
2.子类中所有的构造方法都会访问父类中的无参的构造方法,因为子类继承父类,在子类初始化之前,一定要先完成父类数据的初始化。所以每个子类构造方法的第一条语句默认都是:super()
4.通过子类对象访问一个方法,会先 在子类成员范围找,父类成员范围找,父类的父类。。。
5.@Override 是一个注解,可以帮助我们检查重写方法的方法声明的正确性
6.父类的私有成员子类是不能继承的,子类重写父类方法的访问权限不能更低(public>默认>私有)
7.java中的类只支持单继承,不支持多继承,java支持多层继承。
package其实就是文件夹,作用就是对类进行管理。
import关键字用来导包,简化书写。
修饰符
权限修饰符
修饰符 | 同一个类中 | 同一个包中的子类,无关类 | 不同包中的子类 | 不同包中的无关类 |
---|---|---|---|---|
private | true | false | false | false |
默认 | true | true | false | false |
protected | true | true | true | false |
public | true | true | treu | true |
状态修饰符
final关键字,可以修饰成员变量,成员方法,类。
修饰变量:变量是基本类型,表示该变量的数据值不能被改变;变量是引用类型,指的是引用类型的地址值不能被改变,但是地址里面的内容是可以发生改变的。
修饰方法:表明该方法是最终方法,不能被重写
修饰类:表明该类是最终类,不能被继承
static关键字,可以修饰成员变量,成员方法
static修饰的成员变量和成员方法贝类的所有对象所共享,可以通过类名调用(推荐),也可以通过对象名调用(不推荐)
静态成员方法可以访问静态成员,要通过对象来访问非静态成员
多态
多态的形式:具体类多态,抽象类多态,接口多态。
多态的前提:1有继承或实现关系;2有方法重写;3有父(类/接口)引用指向(子/实现)类对象。
向上转型:父类引用指向子类对象。animal a=new cat();
向下转型:父类引用转为子类对象。cat c=(cat)a;
抽象类
在java中,一个没有方法体的方法应该被定义为抽象方法,而类中如果有抽象方法,该类必须定义为抽象类。
抽象类和抽象方法必须使用abstract关键字修饰,抽象类不一定有抽象函数,有抽象函数的类一定是抽象类。抽象类不能实例化,只能通过子类对象实例化,这叫抽象类多态。
抽象类的子类,必须要么重写抽象类中的所有抽象方法,或者子类本身也是一个抽象类。
抽象类可以含有成员变量,常量,构造函数,抽象方法和非抽象方法。
方法的形参/返回值是抽象类名,其实需要的是该抽象类的子类对象。
接口
主要是对行为抽象
接口用关键字interface修饰:public interface 接口名{}
类实现接口用关键字implements表示:public class 类名 implements 接口名{}
接口不能实例化。
接口的成员变量只能是常量,默认修饰符:public static final;没有构造方法;成员方法只能是抽象方法,默认修饰符:public abstract
方法的形参/返回值是接口名,其实需要的是该接口的实现类对象。
类和接口的关系:
类和类的关系:继承关系,只能单继承,多层继承
类和接口的关系:实现关系,可以单实现,多实现
接口和接口的关系:继承关系,可以单继承,也可以多继承
内部类
内部类:就是在一个类中定义一个类。
内部类可以直接访问外部类的成员,包括私有
外部类要访问内部类的成员,必须创建对象。
按照内部类在类中的定义的位置不同,可以分为成员内部类(在类的成员位置),局部内部类(在类的局部位置)
在外界,以格式:外部类名.内部类名 对象名 = 外部类对象.内部类对象; 来创建内部类对象。