- 继承(extends)
作用:
- 代码复用,更加容易实现类的拓展
- 方便建模
package com.itbaizhan.oop;
/**
*测试继承
*/
public class Testextends{
public static void main(String[] args){
Student = new Student("王誉",174,major"java");
}
}
class Person{
string name;
int height;
public void rest(){
System.out.println("休息!");
}
}
class Student{
String name;
int height;
String major;//专业
public void study(){
System.out.println("学习!");
rest;
System.out.println(this.name)
}
public Student(String name,int height,String msjor){
this.name = name;
this.height = height;
this.major = major;
}
}
class boy extends Person{
…………
}
instanceof运算符
public class Test{
public sttic void main(String[] args){
Student s = new Student("王誉",174,"java");
System.out.println(s instanceof Person);
System.out.println(s instanceof Student);
}
}
知识点:
- 父类也称作超类、基类。子类:派生类等。
- java中只有单继承,没有像c++那样的多继承。多继承会引起混乱,使得继承链过于复杂,系统难于维护
- Java中没有多继承,接口有多继承。
- 子类继承父类,可以得到父类的全部属性和方法(除了父类的构造方法),但不见得可以直接访问(比如,父类私有的属性和方法。)
- 如果定于一个类时,没有调用extends,则是他的父类是:java.lang.Object.
方法重写(override)
override(重写)oveload(重载)毫无关系
- 子类重写父类的方法,可以用自身行为替代父类行为。重写是实现多态的必要条件。
-重写的要点:
- “= =” :方法名、形参列表相同。
- “≤”:返回值类型和声明异常相同。
- “≥”:访问权限,子类大于等于父类。(分装)
例子:
package com.itbaizhan.oop;
/**测试方法的重写*/
public class Testoverride{
public static void main(String[] args){
Horse h = new Horse();
Plane p = new Plane();//赋值
h.run();
h.getVehicle();
p.run();//调用plane自己的run方法
}
}
class Vehicle { //交通工具类
public void run(){
System.out.println("跑……")
}
public Vehicle getVehicle(){
System.out.println("给你一个交通工具!")
return null;//返回一个空
}
}
class Horse extends Vehicle { //马也是交通工具,extends继承
@Override //同写了父类的方法,在这里也有覆盖的含义,也是重写的含义
public void run(){
System.out.println{("得得得……");}
@Override
public Horse getVehicle(){
return new Horse();
}
}
}
class Plane extends Vehicle {//plane飞机
public void run(){
System.out.println("天上飞……")
}
}
final关键字
作用:
- 修饰变量:被他修饰的变量不可改变,一旦赋了初值,就不能被重新赋值。 fianal int MAX_SPEED = 120;
- 修饰方法:该方法不可被子类重写。但是可以被重载! final void study(){}
- 修饰类:修饰的类不能被继承。比如:MAX、Math、Sting等。 final classA{}
注意:重载发生在本类,重写发生在父类与子类之间
重载的方法名必须相同,重写的方法名相同且返回值类型必须相同;
重载的参数列表不同,重写的参数列表必须相同
…………未完待续