首页 > 代码库 > Java面向对象
Java面向对象
- Java继承
Java通过extends关键字来声明一个类从另外一个类继承而来。
class 父类 { } class 子类 extends 父类 { }
示例:
//公共父类
public class Animal{
private String name;
private int id;
public Animal(String myName, int myid){
name = myName;
id = myid;
}
public void introduction(){
System.out.println("Hello,everyone! My name is " + id + "," + name +".");
}
}
//子类 public class Penguin extends Animal { public Penguin(String myName, int myid) { super(myName, myid); } } public class Mouse extends Animal { public Mouse(String myName, int myid) { super(myName, myid); } }
继承的特性:
-
子类拥有父类非private的属性,方法。
-
子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。
-
子类可以用自己的方式实现父类的方法。
-
Java的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,多重继承就是,例如A类继承B类,B类继承C类,所以按照关系就是C类是B类的父类,B类是A类的父类,这是java继承区别于C++继承的一个特性。
-
提高了类之间的耦合性(继承的缺点,耦合度高就会造成代码之间的联系)。
继承关键字:
- extends关键字(单一继承,一个子类只能拥有一个父类)
- implements关键字(使用 implements 关键字可以变相的使java具有多继承的特性,使用范围为类继承接口的情况,可以同时继承多个接口(接口跟接口之间采用逗号分隔)。
//implements关键字示例 public interface A { public void eat(); public void sleep(); } public interface B { public void show(); } public class C implements A,B { }
- super 关键字(我们可以通过super关键字来实现对父类成员的访问,用来引用当前对象的父类。)
- this 关键字(指向自己的引用。)
class SuperClass { int i = 50; } class SubClass extends SuperClass { int i =100; public void showMessage() { System.out.printf("super.i = %d, this.i = %d\n", super.i, this.i); } }
输出:
super.i = 50, this.i = 100
- final关键字
final 关键字声明类可以把类定义为不能继承的,即最终类;或者用于修饰方法,该方法不能被子类重写:
声明类:
final class 类名 {//类体}
声明方法:
修饰符(public,private,void,protected等) final 返回值类型 方法名(){//方法体}
- 构造器
子类不能继承父类的构造器(构造方法或者构造函数),但是父类的构造器带有参数的,则必须在子类的构造器中显式地通过super关键字调用父类的构造器并配以适当的参数列表。
如果父类有无参构造器,则在子类的构造器中用super调用父类构造器不是必须的,如果没有使用super关键字,系统会自动调用父类的无参构造器。
Java面向对象
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。