读者可订阅专栏:Java开发指南 |【CSDN@秋说】
文章目录
- 访问实例变量和方法
- 继承
- 接口
访问实例变量和方法
通过已创建的对象来访问成员变量和成员方法,如下所示:
/* 实例化对象 */
Object referenceVariable = new Constructor();
/* 访问类中的变量 */
referenceVariable.variableName;
/* 访问类中的方法 */
referenceVariable.methodName();
举例:
public class ice{public ice(String name){System.out.println("名字是:"+name);}int myAge;public void setAge(int age){myAge=age;}public int getAge(){System.out.println("年龄是:"+myAge);return myAge;}public static void main(String[] args){ice I = new ice("张三");//创建对象I.setAge(1);//调用方法,设定年龄I.getAge();//调用方法,输出年龄}
}
继承
在 Java 中,一个类可以由其他类派生。如果我们需要创建一个类,而且已经存在一个类具有我们所需要的属性或方法,那么我们可以将新创建的类继承该类。
利用继承的方法,可以重用已存在类的方法和属性,而不用重写这些代码。被继承的类称为超类(super class),派生类称为子类(sub class)。
这里给出简单的继承模板:
// 父类
class Parent {// 父类的属性private String name;// 父类的构造方法public Parent(String name) {this.name = name;}// 父类的方法public void printName() {System.out.println("Name: " + name);}
}// 子类继承父类
class Child extends Parent {// 子类的构造方法public Child(String name) {// 调用父类的构造方法super(name);}// 子类可以重写父类的方法@Overridepublic void printName() {System.out.println("Child's name: " + name);}// 子类可以添加新的方法public void sayHello() {System.out.println("Hello from Child!");}
}public class Main {public static void main(String[] args) {// 创建子类的实例Child child = new Child("ICE");// 调用继承自父类的方法child.printName();// 调用子类的方法child.sayHello();}
}
实例演示
假设有一个Animal类,它具有name和age两个属性,以及eat()和sleep()两个方法:
public class Animal {protected String name;protected int age;public Animal(String name, int age) {this.name = name;this.age = age;}public void eat() {System.out.println(name + " is eating.");}public void sleep() {System.out.println(name + " is sleeping.");}
}
现在,如果我们想创建一个Dog类,它是一种动物,具有和Animal类相同的属性和方法,我们可以使用继承来实现:
public class Dog extends Animal {public Dog(String name, int age) {super(name, age);}public void bark() {System.out.println(name + " is barking.");}
}
在这个例子中,Dog类继承了Animal类。Dog类拥有了name和age属性,以及eat()和sleep()方法,同时还添加了一个bark()方法。通过继承,Dog类可以重用Animal类的代码,并且可以添加自己特有的行为。
下面创建了一个Dog类的实例,并实现相应的继承:
public class Ice {public static void main(String[] args) {Dog myDog = new Dog("dog", 3); //继承myDog.bark(); //自己特有的行为}
}class Animal {protected String name;protected int age;public Animal(String name, int age) {this.name = name;this.age = age;}public void eat() {System.out.println(name + " is eating.");}public void sleep() {System.out.println(name + " is sleeping.");}
}class Dog extends Animal {public Dog(String name, int age) {super(name, age);}public void bark() {System.out.println(name + " is barking.");}
}
注意:
1、父类中声明为 public 的方法在子类中也必须为 public。
2、父类中声明为 protected 的方法在子类中要么声明为 protected,要么声明为 public,不能声明为 private。
3、父类中声明为 private 的方法,不能够被子类继承。
接口
在 Java 中,接口可理解为对象间相互通信的协议。接口在继承中扮演着很重要的角色。
接口只定义派生要用到的方法,但是方法的具体实现完全取决于派生类。
举个例子:
// 定义一个接口,只定义派生要用到的方法
interface Animal {void eat();void sleep();
}//Dog类实现了Animal接口,并提供了这两个方法的具体实现。
class Dog implements Animal {public void eat() {System.out.println("Dog is eating.");}public void sleep() {System.out.println("Dog is sleeping.");}
}class Main {public static void main(String[] args) {Dog myDog = new Dog();myDog.eat();myDog.sleep();}
}