本章接面向对象1中特点继承,可看主页。
1.继承:
特点:继承要有一定的层次结构,而且要具备一定的可传递性。
子类继承了父类中所有的属性和方法,但是父类中私有的属性和构造方法子类无法继承。
私有的属性,只能属于当前类,其它类无法使用 构造方法不能被继承,因为构造方法是用来创建当前类对象的,如果子类能继承,则说 明子类也可以创建父类对象,违反了第一个特点。
子类也可以拥有自己特有的属性和功能 在Java中只支持单一继承,也就是说一个子类只能有一个父类,但是一个父类可以拥有多个子
作用:提高代码的重用性
使用extends关键字继承,语法为:
访问修饰符 class 子类 extends 父类{}
示例:
public class Demo { public static void main(String[] args) { S1 s1=new S1(); s1.display(); } } class T1{ private String name="GTA"; private int age=96; String hous="一套空中别墅,一套市区房"; String car="一辆古罗帝汗血宝马跑车,一辆劳斯莱斯全球限定版,暴君K12"; String money="425893"; public void display(){ //普通方法,void+随意起名字 System.out.println("------这是父类的构造方法------"); } public T1(String name){ //JVM默认执行父类的无参构造方法,如果没有将会报错,编译失败 System.out.println("-------父类的构造方法-------名字:"+name); } } class S1 extends T1{ public void display(){ System.out.println("从父类继承的房子:"+hous); System.out.println("从父类继承的车子:"+car); System.out.println("从父类继承的存款:"+money); super.display(); } public S1(){ super("GTA"); //指定父类中有参的构造方法进行传参 System.out.println("------这是子类的构造方法------"); } }
2.static关键字
1.可以修饰成员变量、方法,修饰的变量成为类变量、类方法或者静态变量、静态方法。属于类
2.没有static修饰的成员变量、方法,称为实例变量或者实例方法,都属于对象
3.static修饰的变量或者方法,副本只有一个,就是只被JVM加载一次
4.static修饰的变量或方法,在类被加载就会进行内存空间的分配;实例变量或方法,必须创 建对象才有空间。
3.静态变量
1.静态变量在使用时,可以通过 类名.属性名 的方式调用
2.静态变量也可以通过 对象.属性名 的方式来调用(不建议常用)
3.静态变量可以被类中的所有对象共享
被static关键字修饰的为静态变量
示例:
public class Demo1 { private static String name; private static int age; public static void main(String[] args) { Demo1 demo=new Demo1(); demo.name="张三"; demo.age=19; System.out.println(Demo1.name);.//调用static关键字修饰的静态属性(类名 .属性名) System.out.println(Demo1.age); System.out.println("----------------------"); Demo1 demo1=new Demo1(); System.out.println(Demo1.name); System.out.println(Demo1.age); } }
4.静态方法
1.静态方法使用,也是通过调用 类名.方法名(参数列表)的形式
2.特点:
1.在静态方法中只能调用静态的属性和方法
2.在非静态方法中,可以调用静态方法和属性,也可以调用非静态方法和属性
3.在静态方法中无法使用this和super关键字
示例:
public class Demo{ static String address="张三"; public static void main(String[]args){ System.out.println(address); t1(); Demo.t1(); } public static void t1(){ System.out.println("静态方法"); } }
5.静态代码块
主要用来给静态的成员变量进行初始化
位于类的内部,任何方法的外部。语法为:static{ }
示例:
public class Demo{ //staic 关键字代码块 static { String name="张三"; } public static void main(String[] args) { Demo demo=new Demo(); display(); } public static void display(){ System.out.println("静态方法"+"张三"); } }
关于面向对象,基本上就是这些,面向对象的多态下一章方法重写会写到。还有一些关键字和向上向下转型决定单独写一篇,因为比较重要,关注我,下篇写面向对象的余下部分,谢谢各位!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)