一、java继承
1、继承:一个对象从另一个对象获取属性的过程;
2、java一个子类只能拥有一个父类,不同于C++支持多继承;
3、所有java的类均是由java.lang.Object类继承而来的,所以object是所有类的祖先类;
4、通过extends关键字可以申明一个类是继承另外一个类而来的,如:public class B extends A{};
5、IS-A关系,如Dog IS-A Animal, System.out.println(d instanceof Animal) 打印出 true;
6、通过extends关键字,子类可以继承父类所有的方法和属性,但是无法使用private的方法和属性,这保障了父类的封装性;
1、java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的实现,而这些实现可以具有不同的行为;
2、定义一个接口:
public interface AreaInterface{
double pai=Math.PI;
double area();
}
3、实现一个接口:
public class Circle implements AreaInterface{
double r;
public double area(){
return pai*r*r;
}
}
4、接口可以被重implements。抽象类只能被单一extends;
5、接口只有定义,抽象类可以有定义和实现;
6、接口的字段定义默认为public static final,抽象类字段默认是friendly(本包可见);
7、接口的定义:
public interface People{
public void say();
}
接口的实现:
public class chinese implements People{
public void say(){
System.out.println("你好");
}
}
接口的调用:
People people = new chinese();
people.say();
三、java重写(override)和重载(overload)
1、重写是子类对父类的允许访问的方法的实现过程进行重新编写!返回值和形参都不能改变。即外壳不变,核心重写!
2、重写的好处:子类可以根据需要,定义特定于自己的行为;
3、方法的重写规则:
参数列表必须完全与被重写方法相同;
返回类型必须完全与被重写方法的返回类型相同;
访问权限不能比父类中被重写的方法的访问权限更高,如父类为public,那么子类就不能为protected;
父类的成员方法只能被它的子类重写;
声明为final的方法不能被重写;
声明为static的方法不能被重写,但是可以被再次声明;
构造方法不能被重写;
4、当需要在子类中调用父类的被重写方法时,需要使用super关键字,如super.move();
5、重载是在一个类里面,方法名字相同,但是参数列表或者返回类型不同;
6、重写与重载之间的区别
区别点 重载方法 重写方法
参数列表 必须修改 一定不能修改
返回类型 可以修改 一定不能修改
异常 可以修改 可以减少或删除,一定不能抛出新的或者更广的异常
访问 可以修改 一定不能做更严格的限制(可以降低限制)
1、继承:一个对象从另一个对象获取属性的过程;
2、java一个子类只能拥有一个父类,不同于C++支持多继承;
3、所有java的类均是由java.lang.Object类继承而来的,所以object是所有类的祖先类;
4、通过extends关键字可以申明一个类是继承另外一个类而来的,如:public class B extends A{};
5、IS-A关系,如Dog IS-A Animal, System.out.println(d instanceof Animal) 打印出 true;
6、通过extends关键字,子类可以继承父类所有的方法和属性,但是无法使用private的方法和属性,这保障了父类的封装性;
7、implements关键字:是一个类实现一个接口用的关键字,它是用来实现接口中定义的抽象方法;
1、java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的实现,而这些实现可以具有不同的行为;
2、定义一个接口:
public interface AreaInterface{
double pai=Math.PI;
double area();
}
3、实现一个接口:
public class Circle implements AreaInterface{
double r;
public double area(){
return pai*r*r;
}
}
4、接口可以被重implements。抽象类只能被单一extends;
5、接口只有定义,抽象类可以有定义和实现;
6、接口的字段定义默认为public static final,抽象类字段默认是friendly(本包可见);
7、接口的定义:
public interface People{
public void say();
}
接口的实现:
public class chinese implements People{
public void say(){
System.out.println("你好");
}
}
接口的调用:
People people = new chinese();
people.say();
三、java重写(override)和重载(overload)
1、重写是子类对父类的允许访问的方法的实现过程进行重新编写!返回值和形参都不能改变。即外壳不变,核心重写!
2、重写的好处:子类可以根据需要,定义特定于自己的行为;
3、方法的重写规则:
参数列表必须完全与被重写方法相同;
返回类型必须完全与被重写方法的返回类型相同;
访问权限不能比父类中被重写的方法的访问权限更高,如父类为public,那么子类就不能为protected;
父类的成员方法只能被它的子类重写;
声明为final的方法不能被重写;
声明为static的方法不能被重写,但是可以被再次声明;
构造方法不能被重写;
4、当需要在子类中调用父类的被重写方法时,需要使用super关键字,如super.move();
5、重载是在一个类里面,方法名字相同,但是参数列表或者返回类型不同;
6、重写与重载之间的区别
区别点 重载方法 重写方法
参数列表 必须修改 一定不能修改
返回类型 可以修改 一定不能修改
异常 可以修改 可以减少或删除,一定不能抛出新的或者更广的异常
访问 可以修改 一定不能做更严格的限制(可以降低限制)